给定两个表photos
和keywords
,其中photos.ID = keywords.photos
,如何在单个查询中从两个表中删除相同的行? photos
表只有一条记录,而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行返回。
答案 0 :(得分:3)
您需要添加要删除的表的名称
DELETE photos
FROM photos
INNER JOIN keywords ON photos.ID = keywords.photo
WHERE photos.ID = 262;
答案 1 :(得分:1)
您无法从多个表中明确删除。
但是,如果keywords.photos通过“on delete cascade”对photos.id进行外键操作,则从照片中删除时会删除它们