gpt4 book ai didi

mysql - 即使没有返回数据也检索 COUNT()

转载 作者:行者123 更新时间:2023-11-29 14:36:01 25 4
gpt4 key购买 nike

我正在尝试仅通过一个查询从数据库中检索一些内容:- 好友请求的数量- 新私有(private)消息的数量- 通知数量- 以及用户的用户名,例如。向您发送了私信或邀请您成为 friend 。

下面在查询中指定的用户 ID 是正在检查是否有该用户的任何通知的用户。

问题是:如果没有通知,它也不会返回好友请求或私有(private)消息的数量。

这是我构建的查询,它的工作原理与上述问题不同:

SELECT 
n.id,
n.type,
u.username,
COUNT(fr.friend_id) as frc,
COUNT(pm.pm_id) as pmc
FROM
notifications as n,
users as u
LEFT JOIN
private_messages as pm
ON
pm.to_user = '1'
AND
pm.status = 'unread'
LEFT JOIN
friends as fr
ON
fr.friend_id = '1'
AND
fr.status = 'pending'
WHERE
n.user_id='1'
AND
u.id = n.from_id
ORDER BY
n.id ASC

我不确定我错过了什么,所以如果有人可以分享他们的 sql 知识并帮助我,我将非常感激。

谢谢!

诗。我对更复杂的查询还很陌生,所以如果我完全偏离了上述查询的轨道,请告诉我:)。

表结构:

Sample friends table structure
+--------------------------+-----------------------------+
| Field | Type |
+--------------------------+-----------------------------+
| user_id | int(10) |
| friend_id | int(10) |
| status | ENUM('pending','accepted') |
| user_id | int(10) |
+--------------------------+-----------------------------+

Sample notifications table structure
+--------------------------+---------------------+
| Field | Type |
+--------------------------+---------------------+
| id | int(10) |
| type | ENUM('pm','friend') |
| user_id | int(10) |
| from_id | int(10) |
+--------------------------+---------------------+

Sample private message table structure
+--------------------------+-----------------------+
| Field | Type |
+--------------------------+-----------------------+
| pm_id | int(12) |
| to_user | int(10) |
| from_user | int(10) |
| status | ENUM('read','unread') |
+--------------------------+-----------------------+

Sample users table structure
+--------------------------+---------------+
| Field | Type |
+--------------------------+---------------+
| id | int(10) |
| username | varchar(50) |
+--------------------------+---------------+

最佳答案

抱歉,我不知道 mysql 语法,但是你可以尝试一下

...
From
users as u
LEFT JOIN
notifications as n ON <whatever>
...

你所拥有的可能与我所知的相同。但假设您的用户表始终包含数据,这可能会起作用。

关于mysql - 即使没有返回数据也检索 COUNT(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9035743/

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