• 締切済み

複数のテーブルにまたがるDELETE

カラム構成が同じの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です。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

いや、そもそも・・・ >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あたりを使いたいのかなぁ・・・ なんて想像はできますが

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

http://dev.mysql.com/doc/refman/4.1/ja/delete.html によると、複数テーブルをつかった削除に関しては、 ORDER BY やLIMITが使えないとかいてありますね UPDATEも同様のようなのでフラグで処理はむずかしそうです。 削除用のテーブルをよういしておき、そこにユニークなIDを 流しこんで、DELETEするなどの処理が妥当でしょうか

osama_vin_ladin
質問者

補足

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

すると、全ての回答が全文表示されます。

関連するQ&A