ようこそ!逆襲のニートブログへ

ブログ内検索

最近の記事

はてなブックマーク数

この日記のはてなブックマーク数

カテゴリー

月別アーカイブ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

初期の MySQL バージョンに合わせたサブクエリの書き換え

今作っているWebサイトのサーバにバージョン4.0のMySQLが入っている。
サブクエリが使えないので、長々としたSQLを組み立てないといけない。
すごい不便だ!><

どーすんだっけ、これ?
いつもド忘れするので検索結果をメモ。

6.4.2.11. 初期の MySQL バージョンに合わせたサブクエリの書き換え

バージョン 4.0 までは、ネストされたクエリのサポートは、INSERT ... SELECT ... 形式と REPLACE ... SELECT ... 形式だけに限定されています。
サブクエリを含むクエリは、多くの場合、サブクエリなしのクエリに書き換えることができます。



次のクエリの場合、
SELECT * FROM t1 WHERE id NOT IN (SELECT id FROM t2);
SELECT * FROM t1 WHERE NOT EXISTS (SELECT id FROM t2 WHERE t1.id=t2.id);

次のように書き換えることができます。
SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id
WHERE table2.id IS NULL;



おー、これこれ。
IN、EXISTSが使えない場合は、LEFT JOINでテーブルをくっつけて、あとはWHEREで削り取る条件をチマチマ書いていけばOK。

…面倒くさいから、サーバチェンジ!
(と言いたいorz)

達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)
(2008/02/07)
ミック

商品詳細を見る

関連記事

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:
http://gooddays1.blog37.fc2.com/tb.php/424-ce3b173f

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。