我试图得到结果表与两列
- 第一个包含所有船舶名称的"船">
- 当结果被"损坏"时的第二次"战斗次数">
和未损坏的船舶在第二列中为0。
我得到了下面的这个查询,但是缺少带有0的船…我怎么把它们加起来?
SELECT Outcomes.Ship, COUNT(battles.name) AS NumberOfbattles
FROM outcomes
LEFT JOIN Battles ON Outcomes.battle = battles.name
WHERE result LIKE 'damaged'
GROUP BY Ship;
对于相同的DB。
我需要一个查询,可以得到"损坏"的船只,后来在另一场战斗中获胜
(假设战斗表只有名字和日期)
感谢where
子句将外部连接变为内部连接:
SELECT o.Ship, COUNT(b.name) AS NumberOfbattles
FROM outcomes o LEFT JOIN
Battles b
ON o.battle = b.name AND b.result like 'damaged'
GROUP BY o.Ship;
为什么?不匹配的结果是NULL
,你的WHERE
过滤掉它们。