MySQL将两行作为单一行

时间:2012-10-06 07:31:04

标签: mysql

我有一个名为connections的友谊系统表。列是:

idfromtodirectionliking

每当用户发送好友请求时,会添加一行并将direction设置为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。 “不同的用户连接”的值不同。

示例 - AB的喜好为0.95。并且B可能只对0.25 A感到满意{。}}。

1 个答案:

答案 0 :(得分:0)

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

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

您说在朋友接受请求时添加一行。这会产生两行。使用新方向更新现有行会不会更有意义吗? - 根据评论忽略最后一部分