自我加入以获取朋友列表

时间:2015-04-22 12:54:47

标签: php mysql

我如何从网络表中获取好友列表好友列表。

下面是包含表架构和示例数据的URL。我创建了以下查询,其中id- http://sqlfiddle.com/#!9/646bf/5

SELECT
  DISTINCT m.*
FROM members AS m
  LEFT JOIN network n1
    ON (n1.mem_id = m.mem_id
        AND n1.isfriend = 'Y')
  LEFT JOIN network n2
    ON (n2.frd_id = m.mem_id
        AND n2.isfriend = 'Y')
WHERE n2.mem_id = '2' 
    AND m.profile_type='BB'  ORDER BY m.profilenam ASC 

此查询也很慢并且会产生重复的结果。

请帮忙

1 个答案:

答案 0 :(得分:0)

您的成员表没有我们对该查询有用的键(而profile_type和profilenam上的索引可能会有所帮助)。类似地,网络表没有索引,在mem_id上添加一个索引会有所帮助。

但无法评论重复结果的问题,因为我不知道您的查询尝试了什么!