0

column_fooのテーブルyのどの行にも存在しないtable_xからすべてのIDを選択するにはどうすればよいですか?

単一のSQLクエリでこれを行うのに苦労しています。

4

4 に答える 4

4
SELECT id FROM x
  WHERE NOT EXISTS (SELECT * FROM y WHERE foo = id)

または

SELECT id FROM x
  WHERE id NOT IN (SELECT foo FROM y)

または、y.fooがnull許容列でない場合は、次のこともできます。

SELECT x.id FROM x
  LEFT JOIN y ON x.id = y.foo
  WHERE y.foo IS NULL
于 2012-07-07T22:26:59.547 に答える
2

多分あなたは次のようなことをすることができます:

SELECT id FROM table_x WHERE id NOT IN (SELECT column_foo FROM table_y);
于 2012-07-07T22:26:12.767 に答える
1

LEFTJOINを使用します。詳細な説明と例はこちら。

ビジュアル結合

于 2012-07-07T22:26:05.243 に答える
0

可能であれば、サブクエリは避けたほうがよいでしょう。はINNER JOIN、結合条件を満たす行のみを返します。

SELECT DISTINCT
    x.id
FROM
    table_x x
    INNER JOIN table_y y ON (x.id = y.id_column_in_y)
于 2012-07-14T07:34:59.067 に答える