「Oracle 19c」WHERE EXISTSの使い方
書式
SELECT 列名 FROM テーブル名
WHERE EXISTS
(SELECT 列名 );
カッコ内の副問い合わせSQLがtrueであれば、データが取得できます。
使用例
1.EXISTSで2テーブルに合致するレコードを取得します
SELECT UNO,UNAME FROM USER_TBL UT WHERE EXISTS (SELECT * FROM MEMBER_TBL MT WHERE MT.UNO = UT.UNO );
ここでは「USER_TBL」テーブルと「MEMBER_TBL」テーブルをキー「UNO」で副問い合わせを使って取得します。これにより、2テーブルに合致するレコードのみが取得できます。
2.EXISTSで同一テーブルに合致するレコードを取得します
SELECT UNO,UNAME FROM USER_TBL UA WHERE EXISTS (SELECT * FROM USER_TBL UB WHERE UA.UNO = UB.MEMNO );
ここでは「USER_TBL」テーブル単独で副問い合わせを使い、「UNO」と「MEMNO」が合致するデータを取得します。