我有一个包含用户和房间的简单表格。用户可以在多个房间,我想做的是查找用户所在的房间,以及在一次查询操作中同一房间内的其他人。
SELECT user, room FROM rooms WHERE user='foobar'
我可以在SELECT user FROM rooms WHERE room='theroom'
之后再进行另一次查询,但有没有办法减少MySQL查询并提供性能优势?
答案 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'的房间);