我能想象这种情况发生的唯一方式是,如果您有国际化设置,那么
,
表示小数点。您可以使用以下工具轻松测试这一点:
SELECT i.`event_id`, COUNT(i.id)
FROM invitees i LEFT JOIN
invitee_information ii
ON i.id = ii.invitee_id
WHERE ii.invitee_id IS NULL AND
(i.`event_id` = 18569 OR i.`event_id` = 18571) AND
i.`invitation_sent` = 1
GROUP BY i.`event_id`;
如果这可行,那么至少我们已经确定了问题所在。我认为一个空间可以工作:
SELECT i.`event_id`, COUNT(i.id)
FROM invitees i LEFT JOIN
invitee_information ii
ON i.id = ii.invitee_id
WHERE ii.invitee_id IS NULL AND
i.`event_id` IN (18569, 18571) AND
i.`invitation_sent` = 1
GROUP BY i.`event_id`;
COUNT(ii.invitee_id)
在
SELECT
而不是
COUNT(i.id)
. 后者永远不会回来
0
.
编辑:
也许是两个
事件
不在
invitees
桌子假设您有一个事件表,那么如下所示:
SELECT e.event_id, COUNT(i.id)
FROM events e LEFT JOIN
invitees i
ON i.event_id = e.event_id AND
i.invitation_sent = 1 LEFT JOIN
invitee_information ii
ON i.id = ii.invitee_id
WHERE ii.invitee_id IS NULL AND
e.event_id IN (18569, 18571) AND
GROUP BY e.event_id;