首页 > 解决方案 > 在 WHERE 语句中使用 JOIN 的 COUNT 结果

问题描述

我自学 SQL 既是为了娱乐又是为了换工作,所以这个查询很基本,但请告诉我......

我有这个工作正常的查询......

SELECT m.MatchID, COUNT (p.MatchId) AS 'PlayerMatchAdded'
FROM Matches AS m
LEFT JOIN PlayerMatch AS p ON p.MatchID = m.MatchID
WHERE Season = '2020/2021'
GROUP BY m.MatchID
ORDER BY m.Month DESC, m.Date DESC;

我只想显示 COUNT 结果为 0 的结果。\

编辑 - 一些进一步的研究让我明白我需要使用 HAVING 而不是 WHERE,任何关于如何重写它的建议都会很棒。

谢谢

标签: countwhere-clause

解决方案


排序……

SELECT Matches.MatchID, COUNT (PlayerMatch.MatchId)
FROM Matches
LEFT JOIN PlayerMatch ON PlayerMatch.MatchID = Matches.MatchID
GROUP BY Matches.MatchID
HAVING Season = '2020/2021' AND COUNT (PlayerMatch.MatchId) = 0
ORDER BY Matches.Month DESC, Matches.Date DESC;

有没有更好的方法来写这个,这样我就可以避免过早形成坏习惯?


推荐阅读