gpt4 book ai didi

php - 即使没有关系也删除多个表

转载 作者:行者123 更新时间:2023-11-29 00:17:12 26 4
gpt4 key购买 nike

如果其余表与引用表相关,则可以删除多个表。

TABLE1              |   TABLE2              |   TABLE3
id username | id username | id username
1 userA | 1 userA | 1 userA
2 userB | 2 userB | 2 userB

-

DELETE T1, T2, T3 FROM TABLE1 T1
LEFT JOIN TABLE2 T2 ON T2.username='$user'
LEFT JOIN TABLE3 T3 ON T3.username='$user'
WHERE T1.username='$user'

现在我不知道如何处理引用表(上面代码中的 T1 是引用)与另一个不相关的情况。

TABLE1              |   TABLE2              |   TABLE3
id username | id username | id username
1 userC | 1 userA | 1 userA
2 userD | 2 userB | 2 userB

示例:

DELETE FROM TABLE1, TABLE2, TABLE3 WHERE username='userA'

我是否必须一个一个地删除它们,或者是否有一个现有的 MYSQL 查询?

最佳答案

您的示例基本上生成笛卡尔积。在单个查询中从多个表中删除涉及具有关系的表。由于表之间没有关系,因此您必须将它们一张一张地删除。

您的示例语句还必须使用表名来限定列名。

DELETE FROM TABLE1, TABLE2, TABLE3 WHERE username='userA'

但是我们不知道哪个表有值。如果任何表不满足条件,将where子句与AND条件放在一起将不会从任何表中删除记录

(TABLE1.username='userA' AND TABLE2.username='userA' AND TABLE3.username='userA')

同样,OR 条件将删除所有表中的数据,如果其中任何一个表有符合条件的记录。

关于php - 即使没有关系也删除多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22549495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com