2016-05-05 54 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