「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」が合致するデータを取得します。

Oracle 19c

Posted by arkgame