gpt4 book ai didi

mysql - LEFT JOIN 表 B 与表 C 的行数

转载 作者:行者123 更新时间:2023-11-29 08:29:34 28 4
gpt4 key购买 nike

有 3 个表:table_A{id, table_b_id, table_c_id}table_B{id,..}table_C{id}

我使用左连接来获取所有 A,并与 table_B.id 连接。

我需要的是添加 table_C 中的项目计数。
我不想用子查询来做到这一点,可以吗?

查询:

SELECT table_A.*
FROM table_A
LEFT JOIN table_B
ON table_B.id = table_A.table_b_id
WHERE table_A.{field} = {condition}
GROUP BY table_A.{some_field}

最佳答案

尝试

SELECT table_A.*,
COUNT(table_C.id) count_of_c
FROM table_A
LEFT JOIN table_B
ON table_B.id = table_A.table_b_id
LEFT JOIN table_C
ON table_C.id = table_A.table_c_id
WHERE table_A.{field} = {condition}
GROUP BY table_A.{some_field}

旁注:虽然 MySql GROUP BY 扩展允许您将不属于 GROUP BY 一部分的列放入 SELECT 中,但不要这样做不要这样做,因为无法知道在组中选择哪一行。因此,您的 SELECT 子句应类似于

table_A.{some_field}, <Aggregate function>(table_A.{other_field})...

或者您必须将聚合结果与 table_A 连接。

关于mysql - LEFT JOIN 表 B 与表 C 的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17050405/

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