我尝试过类似的东西,但它到目前为止只删除了类别。
DELETE s, i
FROM imgbox_categories s
INNER JOIN imgbox_images i
ON s.category_id = i.fk_category_id
WHERE category_id = @id
另外我收到错误
Incorrect syntax near ','.
答案 0 :(得分:1)
由于您没有标记任何涉及的DBMS,因此您可以EXISTS()
使用ANSI SQL
:
DELETE from imgbox_categories
WHERE EXISTS(SELECT 1 FROM imgbox_images i
WHERE imgbox_categories.category_id = i.fk_category_id )
AND imgbox_categories.category_id = @id
答案 1 :(得分:0)
您的查询似乎是正确的,请查看this answer。
你试图同时从两个表中删除,我想你不能这样做。以下是您收到错误的逗号:DELETE s, i
如果您使用查询从imgbox_categories
删除,然后使用简单查询从imgbox_images
删除,则应该有效。
答案 2 :(得分:0)
如果要从2个表中删除,可以使用2个SQL查询:
DELETE FROM imgbox_categories WHERE category_id = @id;
DELETE FROM imgbox_images WHERE fk_category_id = @id;