从多个表中选择值,其中某个值为零

时间:2013-11-12 16:23:06

标签: sql oracle

我有两张足球主题桌。一个拥有所有玩家,另一个拥有他们的ID,如果他们进球。自己的目标有一个值,如果为真则为1,如果为假则为0。

我想选择每位球员的姓氏以及得分目标的总数。如果一名球员没有进球,结果仍应显示球员,但是,对于进球,则为零。

SELECT LastName, COUNT(Goal.Player_ID) "Goals"
FROM Player
LEFT OUTER JOIN Goal ON Player.Player_ID = Goal.Player_ID
GROUP BY LastName
ORDER BY "Goals" DESC;

虽然这很好,但我只想显示没有进球的元组或者进球不是自己的目标的球员

让我解释一下:我想选择所有玩家,包括那些没有进球的球员,但如果他们确实我只想要计算那些目标不是自己的目标

1 个答案:

答案 0 :(得分:1)

尝试将ownGoal验证添加到ON子句:

SELECT LastName, COUNT(Goal.Player_ID) "Goals"
FROM Player
LEFT OUTER JOIN Goal ON Player.Player_ID = Goal.Player_ID AND Goal.ownGoal = 0
GROUP BY LastName
ORDER BY "Goals" DESC;