SQL:如何比较来自不同表的单元格?

时间:2011-03-25 09:49:38

标签: sql compare rows

我有两张桌子 - 乐队和乐队2。带:

band table

和band2:

enter image description here

列是等于的。我正在使用Access 2010.我想SELECT行WHERE band.Kampas<> band2.Kampas,但是没有主键所以我不能使用JOIN操作。 也许有人有想法?

答案:

enter image description here

仅在这些行band.Kampas<> band2.Kampas。 提前谢谢。

3 个答案:

答案 0 :(得分:1)

如果我理解正确,这就是你想要的:

Select * from band where kampas not in (select kampas from band2)
union
Select * from band2 where kampas not in (select kampas from band)

EDIT。好吧,可能不是在Access中不起作用。看起来这可行,但是:

Select * from band2 where not exists (select * from band where band.kampas = band2.kampas)

这会在内部选择中找到一个选择,其中kampas匹配,我们想要选择那些在内部选择中返回空选择的band2行。

如果你想这样做双向(也就是从乐队中找到),就像我在第一次尝试时那样使用联盟。

答案 1 :(得分:1)

SELECT b2.*
FROM band2 b2
WHERE b2.kampas NOT IN (SELECT b1.kampas
                        FROM band b1 
                        WHERE b1.kampas IS NOT NULL)
  AND b2.kampas IS NOT NULL    

答案 2 :(得分:0)

这个怎么样:

select * 
from Band as B1 
inner join Band2 as B2 
on B1.Stotis = B2.Stotis
where B1.Kampas <> B2.Kampas