【发布时间】:2026-01-04 04:35:01
【问题描述】:
我的 MySQL 查询有问题,我无法解决。
初始情况如下: 我有一个包含用户的表和一个包含组的表。两个表都由一个多通(group_participant)表连接。
以下查询有效:
SELECT
id,
COUNT(participant.groupId) AS participantsCount
FROM
group
LEFT JOIN
group_participant participant
ON
participant.groupId = id
GROUP BY
id
现在我想用一个过滤器扩展这个查询,该过滤器只返回我作为参与者的条目,但参与者的计数不应该受到影响。
之后,如果用户是否是参与者,应该可以在 Select 中指定一个标志
应该是这样的:
SELECT
id,
COUNT(participant.groupId) AS participantsCount,
IF(participant.userId = "87b67168-0d7d-46c5-9437-29f996b3d85d", 1, 0) AS isParticipant
FROM
group
LEFT JOIN
group_participant participant
ON
participant.groupId = id
WHERE
participant.userId = "87b67168-0d7d-46c5-9437-29f996b3d85d"
GROUP BY
id
我该如何解决这个问题?
【问题讨论】:
-
哦,我忘了说:MySQL
标签: mysql sql if-statement count left-join