我需要计算数据库中的匹配项。
输入:
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
但也许有更好的方法来做到这一点
答案 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