TableOne
和TableTwo
已加入,以便它们包含两个表中的联接字段(称为TableOne.ID
和TableTwo.ID
)相等的行。
我需要从TableOne和TableTwo中删除TableTwo.FieldName为特定值的行。
我试过了:
DELETE FROM TableOne
INNER JOIN TableTwo ON TableOne.ID = TableTwo.ID
WHERE TableTwo.FieldName = 'example';
但是我收到了错误:
Specify the table containing the records you want to delete
我已经多次检查表的名称和字段名称是否正确。所以我认为语法有问题。
答案 0 :(得分:0)
您可以将表格指定为:
DELETE t1, t2
FROM TableOne as t1 INNER JOIN
TableTwo as t2
ON t1.ID = t2.ID
WHERE t2.FieldName = 'example';
虽然MySQL允许您同时从多个表中删除行,但级联约束通常是一种更强大的解决方案。
答案 1 :(得分:0)
试试这个:
DELETE TableOne.* FROM TableOne
INNER JOIN TableTwo ON TableOne.ID = TableTwo.ID
WHERE TableTwo.FieldName = 'example';