0

我有一张简单的桌子,里面有用户和房间。一个用户可以在多个房间中,我想做的是在一次查询操作中找到用户所在的房间,以及其他人在同一个房间中的哪些房间。

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

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

4

3 回答 3

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'
于 2013-04-15T04:21:53.010 回答
0

这个怎么样:

SELECT r.user, r.room
  FROM rooms r JOIN rooms x ON r.room=x.room
  WHERE x.user='foobar';
于 2013-04-15T04:22:11.187 回答
0

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

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

于 2013-04-15T04:35:10.987 回答