gpt4 book ai didi

MySQL 查询 - 从其他表中选择行数

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

我的数据库中有这张表

enter image description here

我正在使用这个查询:

SELECT cl.cl_id, cl.name, COUNT(*) 
FROM cl, st
WHERE st.cl_id = cl.cl_id
GROUP BY cl.cl_id
ORDER BY cl.cl_id;

由于 st 表中的某些 cl_id 值不存在,因此输出仅返回 cl_id 在 st 表中的位置。我需要的查询是这样的:

SELECT cl.cl_id, cl.name 
FROM cl;

但是实现这个

SELECT COUNT(*) 
FROM st
WHERE st.cl_id = cl.cl_id;

但如果 st 表中没有 cl_id 的所有值,则该值返回 0。

最佳答案

切勿FROM子句中使用逗号。 始终使用正确、明确的JOIN语法。在您的情况下,很明显您需要一个LEFT JOIN:

SELECT cl.cl_id, cl.name, COUNT(st.cl_id) 
FROM cl LEFT JOIN
st
ON st.cl_id = cl.cl_id
GROUP BY cl.cl_id
ORDER BY cl.cl_id;

关于MySQL 查询 - 从其他表中选择行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47183411/

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