2016-05-05 53 views
0

我知道有类似的问题,但我找不到解决方案,我需要做什么。所有的SQL显示两个表之间的差异

首先,我有2个表:

  • SD.Airlines(16K +行)
  • SD.AirlineRatings(405行)

我需要找到它记录的形式SD。 AirlineRatings我有SD.Airlines,我做了这个:

SELECT b.Name AS Airline FROM SD.Airlines b 
LEFT JOIN SD.AirlineRatings a ON a.AirlineName = b.Name 
WHERE a.AirlineName IS NOT NULL; 

工作正常,向我展示了249/405条记录。现在...如果我需要比较这些249条记录到SD.AirlineRatings并检查哪些我没有。

我敢打赌,答案很简单,但我不太了解SQL。

感谢

回答

2

如果你想在AirLines收视率,同时也是在Airlines记录,那么我会建议EXISTSIN

select a.* 
from sd.Airlines a 
where exists (select 1 from sd.AirlineRatings ar where ar.AirlineName = a.Name); 

如果你想未分级航空公司:

select a.* 
from sd.Airlines a 
where not exists (select 1 from sd.AirlineRatings ar where ar.AirlineName = a.Name); 

而且,如果您希望航空公司不存在评级,则可以在查询中交换这两个表。

+0

谢谢交换那些2工作 – TaZz