gpt4 book ai didi

mysql - 指示 mysql 中的连接表中是否存在行

转载 作者:行者123 更新时间:2023-11-29 13:54:44 27 4
gpt4 key购买 nike

我正在尝试集体检查数据是否存在于各个表中。我有一个主表 A 和包含与 A 相关的数据的各种表 - 称它们为表 B、C 和 D。我想编写一个查询,对于 A 中的每个条目,指示是否有任何行在 B、C 和 D 中的每一个中。

第一次尝试如下:

SELECT A.id, count(B.id) as b_count, count(C.id) as c_count, count(d.id) as d_count
FROM A
LEFT JOIN B ON B.a_id = A.id
LEFT JOIN C ON C.a_id = A.id
LEFT JOIN D ON D.a_id = A.id
GROUP BY A.id

这给了我正确的结果 - 每个子表中的行数,按主表中的 id 列出。但是,这个查询的效率也非常低,因为它涉及多个联接,而且我并不关心每个子表中有多少行,只关心是否有行。

有人可以提出更好的选择吗?

最佳答案

如果你不关心表中有多少行

用途:

SELECT EXISTS(SELECT 1 FROM table1 WHERE ...)

引用MYSQL文档: http://dev.mysql.com/doc/refman/5.0/en/exists-and-not-exists-subqueries.html

关于mysql - 指示 mysql 中的连接表中是否存在行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16044454/

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