- - PR -
MySQL あるテーブルに含まれないデータ一覧
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-29 15:32
MySQLで動かしています。
TABLE_A( ID int primary key, NAME text); TABLE_B( ID int, KEY int); TABLE_Aから、TABLE_Bに含まれないデータ一覧を取り出すため、SQLを以下のようにしました。 SELECT * FROM TABLE_A WHERE TABLE_A.ID NOT IN (SELECT DISTINCT ID FROM TABLE_B ORDER BY ID) ORDER BY TABLE_A.ID LIMIT 0,10; テスト環境のMySQL4.1.14では取得出来ていますが、 ホスティングサービスのサーバー、MySQL4.0.26ではSELECT DISTINCT〜の部分がシンタックスエラーになってしまいますが、 MySQL4.0.xでは複問い合わせはできないのでしょうか?(3.2.xでもエラーになるようですが) (NOT IN('0','1','2')などの書き方なら、エラーになりませんでした) 別の書き方はないものでしょうか。 または、 WHERE TABLE_A.ID IN (SELECT〜) であれば、 WHERE TABLE_A.ID=TABLE_B.ID と書き換えることが出来ますが、NOT INの場合はどのようにすればいいのでしょうか。 | ||||
|
投稿日時: 2006-09-29 15:39
MySQLのサブクエリー対応は4.1以降なので,4.0系では使えません.
TABLE_AとTABLE_Bを結合してみたらどうでしょう? LEFT JOINでTABLE_Bの列がNULLの行を抽出すればよさげ _________________ # Future Is On Fire ! | ||||
|
投稿日時: 2006-09-29 15:42
外部結合
| ||||
|
投稿日時: 2006-09-29 16:14
素早い回答ありがとうございます。
やはりそうでしたか。
この方法を使わせて頂きます。 |
1