MySQL:返回有条件的用户ID列表

时间:2015-04-05 15:11:29

标签: mysql

我有表“battle_user”管理战斗和用户表之间的关系

表“battle_user”结构:

battle_id     user_id
1111            1
1111            2
22              1
22              3
3               2
3               3

如何重新命名与特定用户竞争的“user_id”列表, 比如用户ID的返回列表与user_id = 1

的战斗

结果应为:

user_id
2
3

3 个答案:

答案 0 :(得分:1)

SELECT distinct(user_id) FROM battle_user
WHERE battle_id IN (select battle_id from battle_user where user_id = 1) and user_id <> 1

答案 1 :(得分:0)

我写了一个查询:

select distinct(b.user_id)
from battle_user b
inner join battle_user b2 on b.battle_id = b2.battle_id and b2.user_id = 10
where b.user_id <> 10

答案 2 :(得分:0)

你可以这样做

select 
b1.user_id from battle_user b1 
where b1.user_id<>1 
and exists ( 
  select 1 from battle_user b2 
  where 
  b2.battle_id = b1.battle_id 
  and  b2.user_id = 1
);