- PR -

MySQLでのSELECT文について

1
投稿者投稿内容
未記入
会議室デビュー日: 2009/02/24
投稿数: 2
投稿日時: 2009-02-24 15:07
お世話になります。
MySQL5.1において3つのテーブルを元にデータを抽出しようと思っています。
まず、
SELECT id FROM a WHERE NOT EXISTS(SELECT id FROM b WHERE a.id=b.id);
でaには存在するが、bには存在しないidを求め、
上で抽出できたデータを更に
SELECT id FROM c WHERE c.status='0';
として絞り込みたいのですが、この2つのSELECT文を一つに纏めるにはどういった節というか、操作の方法があるのでしょうか。
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2009-02-24 15:23
c のテーブルに status = '0' として存在する id でしょうか?存在しない id でしょうか?
どちらにしろ下記の通りでは出来ませんか?

SELECT id FROM a WHERE NOT EXISTS(SELECT id FROM b WHERE a.id = b.id)
AND EXISTS(SELECT id FROM c WHERE c.status = '0' AND a.id = c.id)

SELECT id FROM a WHERE NOT EXISTS(SELECT id FROM b WHERE a.id = b.id)
AND NOT EXISTS(SELECT id FROM c WHERE c.status = '0' AND a.id = c.id)

[ メッセージ編集済み 編集者: King 編集日時 2009-02-24 15:24 ]
未記入
会議室デビュー日: 2009/02/24
投稿数: 2
投稿日時: 2009-02-24 16:00
早速の返答ありがとうございます。
status='0'として存在するidになります。

教えて頂いたSQLを実行してみましたが、
2行目最後のc.idでUnknow columnとなってしまいました。

別々に実行した場合は正常に結果が帰ってきますので、テーブル名等間違っていないと思うのですが。。。もう一度確認してみます。
1

スキルアップ/キャリアアップ(JOB@IT)