Table1.
id | name
1 | Test
Table2.
id | post | table1_id
1 | mypst| 1
我需要从Table1
中删除id=1
行和Table2
中所有行的行,其中table1_id =(1是来自Table1
的id)。
我正在尝试这个:
DELETE FROM Table1
INNER JOIN Table2 ON Table2.table1_id = Table1.id AND Table1.id = 1
但是我收到了错误:
关键字“INNER”附近的语法不正确。
怎么了?
答案 0 :(得分:2)
您不应该在一个查询中从多个表中删除
DELETE FROM Table2 WHERE table1_id = 1;
DELETE FROM Table1 WHERE id = 1
应该没问题。你有什么特别的理由希望使用JOIN吗?
答案 1 :(得分:2)
让我们假设您正在做正确的事情并创建了一个外键(Table2.table1_id = Table1.id)。然后,您只需在Table1上设置ON DELETE CASCADE
。
在这种情况下,您应该做的一切是:
DELETE FROM Table1 WHERE id = 1
......放松一下。这是数据一致性,老兄:)