使用SQL中的条件选择查询

Ath*_*hul 0 sql-server-2008

我有两个表Table-A和Table-B.

表-A包含

id           
1
2
3
4
Run Code Online (Sandbox Code Playgroud)

表B包含

id    tno  data
1      1    regec
1      2    marsec
1      0    lorem
2      1    ipsum
2      0    doller
3      2    sit
3      0    amet
3      1    lipsum
Run Code Online (Sandbox Code Playgroud)

在这些表中,id列是主键.我想得到Table-A中的所有id,它们在Table-B中没有相应的行,tno为'2'.

我的结果集看起来像这样

id
2
4
Run Code Online (Sandbox Code Playgroud)

mvp*_*mvp 5

SELECT a.id
FROM tableA a
WHERE a.id NOT IN (
    SELECT b.id
    FROM tableB b
    WHERE b.tno = 2
)
Run Code Online (Sandbox Code Playgroud)

SQLFIddle演示