1

Table1.

id | name
 1 | Test

Table2.

id | post | table1_id
 1 | mypst| 1

我需要从Table1where中删除一行以及table1_id=(1 is id from )中的id=1所有行。Table2Table1

我正在尝试这个:

DELETE FROM Table1 
INNER JOIN Table2 ON Table2.table1_id = Table1.id AND Table1.id = 1

但我收到错误:

关键字“INNER”附近的语法不正确。

怎么了?

4

2 回答 2

2

让我们假设您做对了,并创建了一个外键(Table2.table1_id = Table1.id)。然后你只需要ON DELETE CASCADE在 Table1 上进行设置。

在这种情况下,您应该做的一切是:

DELETE FROM Table1 WHERE id = 1

……然后放松。这是数据一致性,伙计:)

于 2013-01-16T16:52:40.510 回答
2

您不应该在一个查询中从多个表中删除

DELETE FROM Table2 WHERE table1_id = 1;
DELETE FROM Table1 WHERE id = 1

应该没事。您是否有任何具体原因希望使用 JOIN 来执行此操作?

于 2013-01-16T15:01:55.983 回答