在sql中的简单位置

时间:2011-01-06 23:09:16

标签: sql-server-2005

我有一张桌子X和Y

表X

a
b
c
d

表Y

a 1   1
a 32  5
b 1   1
b 4   5
c 5   65

我想要输出c和d,因为它们没有在表Y中记录值为1 1

我怎样才能得到它?

3 个答案:

答案 0 :(得分:3)

你没有给出任何列名,所以我做了一些!

SELECT col1
FROM tablex
EXCEPT
select col1
FROM tabley
WHERE col2=1 and col3=1

如果您的示例过于简化,并且实际上需要tablex中的其他列,请使用NOT EXISTS

SELECT tablex.*
FROM   tablex
WHERE  NOT EXISTS (SELECT *
                   FROM   tabley
                   WHERE  col2 = 1
                          AND col3 = 1
                          AND tablex.col1 = tabley.col1)  

答案 1 :(得分:1)

我想我明白了:

SELECT X.column FROM X 
WHERE X.column NOT IN
(SELECT Y.column FROM Y WHERE Y.column2=1 AND Y.column3=1)

答案 2 :(得分:1)

SELECT col1
FROM TableX
WHERE col1 
NOT IN (select col1
FROM TableY
WHERE col2=1 and col3=1)