【发布时间】:2021-03-15 19:59:58
【问题描述】:
我正在尝试连接下面的两个表,以显示事件表的所有列,以及工单表中相应记录的计数,其中事件表中的事件 ID 与事件表中的相同。
正如您在下面看到的,尚未为任何工单分配 event_id。我查询的目标是显示事件表中的所有记录以及分配给该故障单的ticket_ids 计数。我认为这会起作用,但它只返回一行:
SELECT inc.incident_id, inc.title, inc.date_opened, inc.date_closed, inc.status, inc.description, issue_type, COUNT(ticket_id) as example_count
FROM fin_incidents AS inc
LEFT OUTER JOIN fin_tickets ON inc.incident_id = fin_tickets.incident_id;
我可以使用什么查询来返回所有事件及其工单计数,即使该计数为 0?
图片:
- 事件表
- 门票表
- 我的查询结果
【问题讨论】:
-
没有分组?您的查询无效,因此不要期望它返回正确的结果。
-
@philipxy,是吗?接受的答案正好相反。
-
@jarlh 我说看文档,接受的答案在开始时措辞不当,最后显然同意我的观点,即可以在没有分组的情况下进行聚合。整个表被视为一组,输出特殊情况是空表仍返回 1 行。这可以合理地描述为对空列集进行分组。公认的答案在其第一段中描述的是一个不同的问题。选择非聚合的非分组列有(DBMS 特定的)限制。请参阅文档。
标签: mysql sql count left-join aggregate-functions