为了促进兄弟会的联系,我正在尝试设计一个系统,让人们可以评估他们彼此了解的程度,然后它将匹配那些彼此了解最少的人。这是评级表的样子:
来自_bro | to_bro | 评分 -------------------------- 一个 | 乙| 5 乙| 一个 | 5 乙| C | 2 C | 乙| 3 一个 | C | 5 C | 一个 | 5
我想设计一个查询来选择每对的平均评分。到目前为止,我有这个:
SELECT *, (m1.rating + m2.rating)/2 AS 平均 FROM 匹配 AS m1 LEFT JOIN 匹配 AS m2 开 m1.from_bro = m2.to_bro 和 m1.to_bro = m2.from_bro
这在大多数情况下都有效,但它包含冗余数据:
来自_bro | to_bro | 评级 | 来自_bro | to_bro | 评级 | 平均的 -------------------------------------------------- --------------- 一个 | 乙| 5 | 乙| 一个 | 5 | 5.0000 乙| 一个 | 5 | 一个 | 乙| 5 | 5.0000 乙| C | 2 | C | 乙| 3 | 2.5000 C | 乙| 3 | 乙| C | 2 | 2.5000 一个 | C | 5 | C | 一个 | 5 | 5.0000 C | 一个 | 5 | 一个 | C | 5 | 5.0000
看看第 1 行和第 2 行、第 3 行和第 4 行、第 5 行和第 6 行虽然不是重复的,但本质上是相同的。有没有办法可以过滤掉那些多余的行?