MySQL将两行计为一行

时间:2017-04-21 02:07:40

标签: mysql

我需要计算数据库中的匹配项。

输入:

id_to    id_from
1        2  
2        1  
1        3
3        1
1        4
5        1

第5行和第6行只有一个方向,所以不计算

示例输出:

id_match
1       
2
3

因此,对于1(隐式),2和3存在反向匹配,但对于4和5,则不存在' t。

---- EDITED ----

假设表名是"示例"我希望获得id = 1的所有匹配,然后SQL查询将是:

SELECT count(*) FROM
(SELECT id_to FROM example WHERE id_from = 1) as t1,
(SELECT id_from FROM example WHERE id_to = 1) as t2
WHERE t1.id_to = t2.id_from

但也许有更好的方法来做到这一点

1 个答案:

答案 0 :(得分:0)

你可以尝试

SELECT DISTINCT id_from AS matched_id 
FROM   your_table AS data1 
WHERE  EXISTS (SELECT 1 
               FROM   your_table AS data2 
               WHERE  data1.id_from = data2.id_to 
                      AND data1.id_to = data2.id_from) 

我创建了一个演示here