Предложение WHERE возвращает неверный результат - PullRequest
0 голосов
/ 04 июня 2018

Я хочу вернуть все записи, которые имеют team_id определенное число и имеют конкретное round_id, поэтому я написал этот запрос:

SELECT * FROM `match` WHERE home_team_id = 68 OR away_team_id = 68 AND round_id = 70

это вернет:

{
    "id": "61032",
    "round_id": "70",
    "home_team_id": "68",
    "away_team_id": "76",
},
{
    "id": "61052",
    "round_id": "75",
    "home_team_id": "68",
    "away_team_id": "74",
},

почему я также получаю запись с round_id = 75?

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Я думаю, что вам нужна логика:

where 68 in (home_team_id, away_team_id) and round_id = 70

Вы также можете исправить свою логику, изменив скобки.

0 голосов
/ 04 июня 2018

Вам, вероятно, просто нужны скобки, чтобы сгруппировать ваши логические утверждения:

SELECT * 
FROM match 
WHERE home_team_id = 68 
    OR (
        away_team_id = 68 
        AND 
        round_id = 70
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...