0

ユーザーと部屋を持つ単純なテーブルがあります。ユーザーは複数の部屋にいることができます。私がやりたいのは、ユーザーがいる部屋と、1 回のクエリ操作で同じ部屋にいる他の人を見つけることです。

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 に答える