gpt4 book ai didi

php - SQL 连接问题返回 NULL 值

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

我在对三个表运行查询时遇到问题:

用户、user_teams、user_messages

我希望创建一个报告,直线经理可以在其中查看其团队所有成员的传入邮件和传出邮件总数。如果没有传出或传入,查询将显示用户的零值。

我的表格如下:

users
------
uid
forename
surname

user_teams
-------------
id
manager_id
member_id

user_messages
-------------
id
outgoing
incoming
uid
msg_date

manager_id和member_id都与用户的uid字段有关。管理者和用户之间是一对多的关系。

到目前为止我的查询是这样的:

SELECT u.uid, u.forename, u.surname,
SUM(IF(m.outgoing=0 ,1,0)) AS total_outgoing,
SUM(IF(m.incoming>0 ,1,0)) AS total_incoming,
FROM users u
INNER JOIN user_messages m
ON m.uid=u.uid AND m.msg_date>='2012-09-01' AND m.msg_date<='2013-08-31'
RIGHT JOIN user_teams ut ON ut.member_id=u.uid
WHERE ut.leader_id=?
GROUP BY u.uid
ORDER BY u.surname ASC

如果用户已发送或接收消息,此功能将正常运行。但是,如果两个字段的 SUM 为零,我将收到 uid、名字和姓氏的 NULL。

最佳答案

使用 LEFT JOIN user messages m 而不是 INNER JOIN user messages m 当没有消息时,您收到的消息是正常的(uid、名字和姓氏为 NULL)。

关于php - SQL 连接问题返回 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17150305/

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