gpt4 book ai didi

当 WHERE 条件之一导致 false 时,MySQL 查询给出空值

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

我在使用 MySQL 查询时遇到问题。我有两个表,即用户和项目。我正在尝试获取项目名称和在特定项目中工作的用户数量。以下是我正在使用的查询。

SELECT b.projName AS project_name, 
COUNT(a.empId) AS project_strength
FROM users a,
projects b
WHERE b.projName LIKE '%windows%' AND
(a.empProjId = b.projId)

在某种情况下,当没有用户为项目工作时(用户表中没有 empProjId 将与项目表的 projId 匹配的行),我得到的项目名称为 null,即使该项目存在于projects 表等子句匹配。在这种情况下,我希望显示项目名称并且计数为 0。

我是初学者,不知道可不可以。任何帮助将不胜感激。非常感谢。

最佳答案

您应该使用左连接和带分组依据的计数。

SELECT b.projName AS project_name, 
count(b.projName) AS project_strength
FROM projects b LEFT JOIN
users a ON (b.projId = a.empProjId)
WHERE b.projName LIKE '%windows%'
group by b.projName

关于当 WHERE 条件之一导致 false 时,MySQL 查询给出空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20244866/

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