1
select *
from table1 t1,
table2 t2,
table3 t3
where t2.parent_id = t1.row_id
and t2.xyz is not null
and (
select count(*)
from table3
where xyz = t2.row_id
) = 0;
これは動作しますか? サブクエリ内で別名t2を使用しています。WHERE句でカウントを指定する
私の要件は、table3の列xyzがtable2のrow_idとして格納されているレコードがtable3に存在しないようにwhere句の条件を指定することです。
使用しているSQLのバージョンは何ですか?これは自分で試しましたか?私は、カウントサブクエリの代わりに '存在しない'を使うかもしれません。現在、 'table2'と' table3'のクロスジョインをしていることに注意してください。 –
Stack Exchangeサブサイトのコードレビュー – Edward
今日のヒント:現代的で明示的な 'JOIN'構文に切り替えることができます! (以下の@ GurVの答えのように)。 – jarlh