具有多个条件和空值的SQL查询



我试图得到结果表与两列

  • 第一个包含所有船舶名称的"船">
  • 当结果被"损坏"时的第二次"战斗次数">

和未损坏的船舶在第二列中为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过滤掉它们。

最新更新