0

想象一下,你有一个像 facebook 这样的朋友系统。

你有一个 m2m 表,其中包含连接之间的两个人的 id。

目前,我们从任一方向记录记录。这意味着 id 可以在任一列中。因此,当我们进行选择时,我们必须在任一列中搜索 id。

我们可以在选择之后通过对登录的用户 ID 进行测试来对它进行排序,但我想知道是否有更好的方法来做到这一点

4

1 回答 1

1

您会发现使用 a 性能最好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 回答