0

Facebook のような友達システムがあるとします。

そして、参加している両方の人々のIDを保持するm2mテーブルがあります。

現在、いずれかの方向からレコードを記録しています。これは、ID がどちらの列にもある可能性があることを意味します。したがって、選択を行うときは、どちらかの列で ID を検索する必要があります。

ログインしたuserIdに対してテストすることで、選択後にこれをソートできますが、これを行うためのより良い方法があるかどうか疑問に思っています

4

1 に答える 1

1

を使用すると、パフォーマンスが最適であることがわかりますUNION

select user_id1 as friend_id
from friends
where user_id2 = ?
union
select user_id2
from friends
where user_id1 = ?

また、関連付けテーブルの両方の id 列にインデックスがあることを確認してください。

于 2012-07-06T12:08:34.203 に答える