Check

mysqlでdelete時のjoin

| | コメント(2) | トラックバック(0)
mysqlでは「DELETE a FROM a_table AS a INNER JOIN b_table AS b ON (nnn) WHERE xxx」できるらしい(他のDBMSでもできるかも)

FROMでASを指定した場合、DELETEの後のテーブル名はASで指定したものを記述する。

「DELETE a_table FROM a_table AS a INNER JOIN b_table AS b ON(nnn) WHERE xxx」
こんな感じでテーブル名を直接しているすると
「ERROR 1109 (42S02): Unknown table 'a_table' in MULTI DELETE」
とかいわれる。

//--------20101124追記

DELETEとFROMのあいだのテーブル名は必須。

FROMでASを使うならDELETEとFROMのあいだのテーブル名はASで指定したテーブル名でなくてはならない。

「DELETE a_table FROM a_table AS a INNER JOIN b_table AS b ON (nnn) WHERE xxx」はできない。

「DELETE a_table FROM a_table INNER JOIN b_table ON (nnn) WHERE xxx」はOK。

トラックバック(0)

このブログ記事を参照しているブログ一覧: mysqlでdelete時のjoin

このブログ記事に対するトラックバックURL: http://0-9.sakura.ne.jp/mt/mt-tb.cgi/500

コメント(2)

「DELETEとFROMの間のお話」めっちゃ、助かりました。
ありがとう。

お役に立てて光栄ですー

コメントする