gpt4 book ai didi

mysql - 是否可以通过一次查询删除不同表中具有相同外键的记录?

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:22 25 4
gpt4 key购买 nike

我需要使用单个 sql 查询删除所有具有相同外键 ID 的多表中的记录。我给出了下面的例子,

Table Name : basetable
id | column1
---|---------
1 | BCol1
2 | BCol2

Table Name : Reftable1

id | BaseTableID | Column1
---|-------------|--------
1 | 1 | RT1Col1
2 | 1 | RT1Col2

Table Name : Reftable2

id | BaseTableID | Column1
---|-------------|--------
1 | 2 | RT2Col1
2 | 1 | RT2Col2

Table Name : Reftable3

id | BaseTableID | Column1
---|-------------|--------
1 | 1 | RT3Col1
2 | 2 | RT3Col2

在上面的三个引用表中,我想使用单个 mysql 查询删除具有 BaseTableID=1 的记录。有没有可能请分享你的想法

最佳答案

我想这样就可以了:

DELETE r1, r2, r3
FROM Reftable1 r1
JOIN Reftable2 r2
JOIN Reftable3 r3
WHERE r1.BaseTableID = 1
AND r2.BaseTableID = 1
AND r3.BaseTableID = 1

SQLFIDDLE

如果一些表可能没有匹配的行,这个 LEFT JOIN 应该这样做:

DELETE r1, r2, r3
FROM basetable b
LEFT JOIN Reftable1 r1 ON b.id = r1.BaseTableID
LEFT JOIN Reftable2 r2 ON b.id = r2.BaseTableID
LEFT JOIN Reftable3 r3 ON b.id = r3.BaseTableID
WHERE b.id = 1

SQLFIDDLE

关于mysql - 是否可以通过一次查询删除不同表中具有相同外键的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18266154/

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