Как иметь условие в вложенном запросе SQL? - PullRequest
0 голосов
/ 12 мая 2010

Вот мое заявление SQL, я хотел бы найти все игры, которые имеют статус 0 и названия команд, которые похожи на key_word или название спорта, которые похожи на ключевое слово. Проблема в том, что все отображаемые игры не имеют статуса 0. Что я делаю не так?

sql="select * from games where games.status=0 and games.team_2_id
     IN (select id from teams where name like '"+key_word+"')
      or games.team_1_id
        IN (select id from teams where name like '"+key_word+"')
          or games.sport like '"+key_word+"'
            "

1 Ответ

3 голосов
/ 12 мая 2010

Похоже, вам просто нужно заключить ваши OR условия отдельно в скобки:

SELECT * 
FROM   games 
WHERE  games.status = 0 AND 
       (games.team_2_id IN (SELECT id FROM teams WHERE name LIKE '%key_word%') OR
        games.team_1_id IN (SELECT id FROM teams WHERE name LIKE '%key_word%') OR
        games.sport LIKE '%key_word%')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...