1

photos2 つのテーブルとkeywords、 where が与えられた場合photos.ID = keywords.photos、単一のクエリで両方のテーブルから同じ行を削除するにはどうすればよいですか? photosテーブルには 1 つのレコードがあり、レコードkeywordsへの参照は 9 つありますphotos

私はもう試した

DELETE FROM photos 
INNER JOIN keywords ON photos.ID = keywords.photo 
WHERE photos.ID = 262;

エラーが存在することを示すエラー 1064 が表示されINNER JOIN keywords、ステートメントの残りの部分で始まります。

ただし、DELETEステートメントをSELECT *ビアに変換すると

SELECT * FROM photos
INNER JOIN keywords ON photos.ID = keywords.photo
WHERE photos.ID = 262;

、9行のセットが返されます。

4

2 に答える 2

3

削除するテーブルの名前を追加する必要があります

DELETE photos 
FROM photos 
     INNER JOIN keywords ON photos.ID = keywords.photo 
WHERE photos.ID = 262;
于 2013-01-05T01:48:33.363 に答える
1

複数のテーブルから明示的に削除することはできません。

ただし、keywords.photos が「on delete cascade」で photos.id に外部キー化されている場合、写真から削除すると削除されます。

于 2013-01-05T01:50:45.210 に答える