0

我有一张要求connections建立友谊系统的桌子。这些列是:

id, from, to, direction,liking

每当用户发送好友请求时,都会添加一行并将方向设置为 1(1 表示正向,2 表示反向)。当其他用户接受好友请求时,将添加另一行并将方向设置为 2。

我试图找出一种方法来获得用户的朋友。但是当我执行以下查询时,行会重复。

            SELECT
                `users`.`name`,`users`.`id`
            FROM
                `connections`,
                `users`
            WHERE
                (
                    `connections`.`from` = 1234 AND
                    `connections`.`to` = `users`.`id` AND
                    `connections`.`direction` = 1
                )
                OR
                (
                    `connections`.`to` = 1234 AND
                    `connections`.`from` = `users`.`id` AND
                    `connections`.`direction` = 2
                )

如何修改此查询以包含行不重复?

更新:我要添加两行,因为有一列liking。对于“不同的用户连接”,这个值是不同的。

示例 -A可以有 0.95 的喜好B。并且B可以喜欢只是0.25为了A

4

1 回答 1

0

根据您的评论,您可以添加外部查询:

 SELECT
            name, DISTINCT(id) AS id
 FROM
     (original query)

您说当朋友接受请求时添加一行。这将创建两行。用新方向更新现有行不是更有意义吗?- 根据评论忽略最后一部分

于 2012-10-06T07:35:27.677 回答