重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

カラム構成が同じのtable_Aとtable_Bがあります。
DELETE FROM table_A,table_B
WHERE Column_1='you' AND Column_2='his' ORDER BY datetime LIMIT count
といった具合に、
table_Aとtable_Bにまたがってdatetimeカラムが小さい順にcountの数だけ削除しようとしていますが、上記のSQL文ではエラーが出てしまいます。
誤りをご指摘願えればと存じます。よろしくお願いいたします。
versionはMySQL - 5.0.24-community-ntです。

A 回答 (2件)

http://dev.mysql.com/doc/refman/4.1/ja/delete.html

によると、複数テーブルをつかった削除に関しては、
ORDER BY やLIMITが使えないとかいてありますね
UPDATEも同様のようなのでフラグで処理はむずかしそうです。

削除用のテーブルをよういしておき、そこにユニークなIDを
流しこんで、DELETEするなどの処理が妥当でしょうか

この回答への補足

回答ありがとうございます。
オンラインリファレンスの存在を忘れておりました。
複数のテーブルにまたがるDELETEでいい方法がありましたら、教えていただければありがたいです。

補足日時:2008/08/14 20:04
    • good
    • 0

いや、そもそも・・・



>DELETE FROM table_A,table_B
>WHERE Column_1='you' AND Column_2='his' ORDER BY datetime LIMIT count

というSQL自体table_Aとtable_Bの結合がされていないので
すごく意味のないSQLになっていると見うけられます。
table_Aとtable_Bの構造と、具体的な例をあげるべきでしょう。

>table_Aとtable_Bにまたがって

と書いているところをみるとUNIONあたりを使いたいのかなぁ・・・
なんて想像はできますが
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す