それぞれが field を持つ 3 つのテーブルがあるとしますfoo
。次のレコードを取得するにはどうすればよいですか。
- 3 つのテーブルすべてに foo の値が存在するすべてのレコード?
- foo の値が 2 つのテーブルに存在するすべてのレコード?
- foo の値が存在するすべてのレコードが 1 つのテーブルにのみ存在するか?
foo
ユニークです。
#1の私の試み:
SELECT a.foo
FROM a
WHERE a.foo IN (SELECT b.foo
FROM b
WHERE b.foo IN (SELECT c.foo
FROM c))
#2については、#1と同様のことをする必要があると思いますが、一度に2つのテーブル{a、b}、{b、c}、{a、c}の場合、それをUNIONしますか?わからない。
#3については、手がかりがありません。
更新: サンプルデータ
Table1
- foo-a
- foo-b
- foo-c
Table2
- foo-a
- foo-b
Table3
- foo-a
- foo-c
- foo-d
#1 の質問では、3 つのテーブルすべてに 1 つのレコードが存在します: foo-a。#2 の質問では、2 つのテーブルに存在する 2 つのレコードがあります: foo-b (Table1 と Table2 内) と foo-c (Table1 と Table3 内)。#3 の質問では、1 つのテーブルにのみ存在するレコードが 1 つあります: foo-d。