1

2 つの MySQL テーブルから削除しようとしています。

1) table_images
2) table_images_links

同じ image_id と pair_id id を持つすべての行エントリ

1) table_images.image_id
2) table_images_links.pair_id

そして、この ID の table_images_links.il.object は「cat」と正確に等しくなければなりません

私のクエリは次のとおりです。

mysql_query("
DELETE FROM table_images im, table_images_links il 
WHERE im.image_id = il.pair_id 
AND il.object = 'cat'
");

問題は、このクエリの実行後に何も起こらないことです。

私の質問は次のとおりです。これをトレースして、ニーズに応じてクエリを機能させるにはどうすればよいですか。

ありがとう!

4

1 に答える 1

3

DELETEステートメントでテーブルを結合するときに、行を削除するテーブルを指定する必要があります。この場合、テーブル名に指定されたALIASを使用します。

DELETE im, il                   -- this will delete row in both tables.
FROM   table_images im, table_images_links il 
WHERE  im.image_id = il.pair_id AND 
       il.object = 'cat'

また

DELETE im, il                   -- this will delete row in both tables.
FROM   table_images im
       INNER JOIN table_images_links il 
           ON  im.image_id = il.pair_id AND 
               il.object = 'cat'
于 2013-04-02T15:05:12.420 に答える