MySQL子查询 - 查找用户所在的房间,并查找房间中的其他人

时间:2013-04-15 04:18:33

标签: mysql

我有一个包含用户和房间的简单表格。用户可以在多个房间,我想做的是查找用户所在的房间,以及在一次查询操作中同一房间内的其他人。

SELECT user, room FROM rooms WHERE user='foobar'

我可以在SELECT user FROM rooms WHERE room='theroom'之后再进行另一次查询,但有没有办法减少MySQL查询并提供性能优势?

3 个答案:

答案 0 :(得分:1)

您可以加入rooms表:

SELECT r1.user, r1.room, r2.user 
FROM 
   rooms r1 JOIN rooms r2 ON r2.room = r1.room 
WHERE r1.user='foobar'AND r2.user != 'foobar'

答案 1 :(得分:0)

这个怎么样:

SELECT r.user, r.room
  FROM rooms r JOIN rooms x ON r.room=x.room
  WHERE x.user='foobar';

答案 2 :(得分:0)

在这种情况下,我认为您可以在查询中使用“IN”子句......

从房间所在的房间中选择用户(选择房间来自用户='foobar'的房间);