INTERSECT
CoddyのSQLジャーニー「応用」セクションの一部。レッスン 17/27。
INTERSECT は、両方の結果セットに現れる行だけを返します。UNION と同様に重複を削除し、左右それぞれで一致する列が必要です。
SELECT email FROM newsletter_subs
INTERSECT
SELECT email FROM premium_usersこれは、結合を記述せずに、ニュースレターを購読していてかつプレミアムユーザーでもあるすべての email です。
なぜわざわざ、JOINでも同じことができるのに? 両側が単純なSELECTで、idだけでなく行全体を照合する場合は、INTERSECTのほうが短くなります。
チャレンジ
簡単利用可能なテーブルとカラム:
newsletter:activepremium:plan
activeなニュースレター購読者(active = 1)かつ'pro'プランのプレミアムユーザーとして表示されるメールアドレスを返してください。アルファベット順に並べてください。
自分で試してみよう
-- INTERSECT の前に各側をフィルタする
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
応用のすべてのレッスン
自分で練習してみよう: SQLプレイグラウンド