- 締切済み
サブクエリーでデータが存在しないレコードを取得したいです
サブクエリーで指定したb_masterにレコードが存在せず、a_masterにレコードがある人のデータを取得したいのですが、以下のSQLを変更して実現可能でしょうか? SELECT * FROM user_master as u WHERE code='6' AND (u.code,u.username) = (SELECT code, username FROM b_master as b WHERE b.no = '38' AND b.status >= 1 AND b.code = u.code AND b.username = u.username ) よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kougasha
- ベストアンサー率32% (34/105)
Oracle限定ですが。 SELECT USER_NAME FROM A_MASTER MINUS SELECT USER_NAME FROM B_MASTER; AマスタをSELECTした結果一覧から BマスタをSELECTした結果一覧にあるものを除く。 という構文です。(MINUS集合演算子) それぞれのSELECTにはWHERE句も指定できます。
- osamuy
- ベストアンサー率42% (1231/2878)
SELECT u.* FROM user_master AS u WHERE u.code='6' AND NOT EXIST ( SELECT b.code, b.username FROM b_master AS b WHERE b.no = '38' AND b.status >= 1 AND b.code = u.code AND b.username = u.username ); ――とか。 試さないで書いてますが。
- bin-chan
- ベストアンサー率33% (1403/4213)
SELECT * FROM user_master as u WHERE code='6' AND (u.code,u.username) not in (SELECT ←ここがポイント code, username FROM b_master as b WHERE b.no = '38' AND b.status >= 1 AND b.code = u.code AND b.username = u.username ) ではいかがですか?