MySQL:SELECT与AND或产生不正确的数据?

时间:2013-04-23 01:30:01

标签: mysql database

我有一张桌子正在记录我正在开发的运动应用程序的所有得分游戏。我试图从得分表中找出一名球员有多少次助攻。有辅助助手和辅助辅助,所以我试图使用COUNT(*) WHERE...

返回总助攻的值

我正在使用以下SQL语句:

SELECT COUNT(*) FROM teamassist13.AllScoringPlays WHERE GameId = 6124 AND SeasonId = 1 AND P_AssistId = 21 OR S_AssistId = 21;

这为我提供了游戏6124的准确评分(它返回用户有2次助攻),但是当我将GameId切换到6125时,它会显示用户有1个助手,当他们应该有0时。

我也尝试过以下声明:

SELECT COUNT(*) FROM AllScoringPlays WHERE GameId = 6124 AND SeasonId = 1 AND (P_AssistId = 21 OR S_AssistId = 21);

然后告诉我,玩家有1个GameId 6124的助攻(不准确,应该是2),0 GameId 6125的帮助(准确)。

`GameId` 6125 should return 0 assists
`GameId` 6124 should return 2 assists

这是我目前查询的View的结构:

| GameId | TeamId | SeasonId | LeagueId | GoalId | P_AssistId | S_AssistId |
   6124      1         1           1        20        21             23
   6124      1         1           1        19        20             21

它似乎绕过了OR语句,我不知道如何解决这个问题。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您的第二个查询是正确的:

SELECT COUNT(*) FROM AllScoringPlays WHERE GameId = 6124 AND SeasonId = 1 AND
(P_AssistId = 21 OR S_AssistId = 21);