2016-04-06 5 views
1

テーブルは、どのように列がない

id city 
1 koronadal 
2 cebu 
3 manila 

表B別のテーブルに存在するテーブルから選択する

id city 
1 cebu 

期待出力に含ま:

:ここ
id city 
1 koronadal 
3 manila 

は私のクエリです
Select a.id, a.city from tablea a left join tableb b on a.city = b.city 

私は間違った出力を得ます..助けてください。

答えて

0

あなたは正しい方法です! LEFT JOINING

Select a.id, a.city 
from tablea a 
left join tableb b 
on a.city = b.city 
WHERE b.id is null 

は、右の表からまだ選択されています。この場合にtableAに結合条件の一致、左のテーブル、およびすべてのデータがないとき:今、あなただけ一致する人をフィルタリングする必要がありますこの場合、tableBはNULLになります。だから、Bテーブルでヌル値を検索するだけです。

別のアプローチは、IN()を使用することです:

SELECT * FROM TableA a 
WHERE a.city NOT IN(SELECT city FROM TableB) 

そして、もう一つの方法は、EXISTS()次のとおりです。

SELECT * FROM TableA a 
WHERE NOT EXISTS(SELECT 1 FROM TableB b 
       WHERE a.city = b.city) 
+0

あなたの助けをありがとうございました。.. – redbull

関連する問題