2010-05-12 5 views
0

Voici ma déclaration SQL, je voudrais trouver tous les jeux qui ont le statut 0 et les noms d'équipes qui sont comme le mot-clé ou le nom du sport qui sont comme le mot-clé. Le problème est que tous les jeux qui sont affichés n'ont pas le statut 0. Qu'est-ce que je fais de mal?Comment avoir une condition dans une requête SQL imbriquée?

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+"' 
      " 

Répondre

3

Il semble que vous avez simplement besoin d'enfermer vos conditions séparément OR entre parenthèses:

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%') 
Questions connexes