指定包含要删除的记录的表

时间:2017-12-30 22:19:18

标签: sql

TableOneTableTwo已加入,以便它们包含两个表中的联接字段(称为TableOne.IDTableTwo.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

我已经多次检查表的名称和字段名称是否正确。所以我认为语法有问题。

2 个答案:

答案 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';