• 締切済み

サブクエリーでデータが存在しないレコードを取得したいです

サブクエリーで指定した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 ) よろしくお願いいたします。

みんなの回答

  • kougasha
  • ベストアンサー率32% (34/105)
回答No.3

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)
回答No.2

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)
回答No.1

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 ) ではいかがですか?

関連するQ&A