如何在嵌套SQL查询中设置条件?

如何在嵌套SQL查询中设置条件?,sql,activerecord,mysql,Sql,Activerecord,Mysql,这是我的SQL语句,我想找到所有状态为0的游戏以及与关键字类似的球队名称或与关键字类似的运动名称。 问题是显示的所有游戏都没有状态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

这是我的SQL语句,我想找到所有状态为0的游戏以及与关键字类似的球队名称或与关键字类似的运动名称。 问题是显示的所有游戏都没有状态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+"'
            "

看起来您只需要将
条件分别放在括号中:

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

看起来您只需要将
条件分别放在括号中:

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