gpt4 book ai didi

MySQL 将两行算作一行

转载 作者:行者123 更新时间:2023-11-29 19:05:41 25 4
gpt4 key购买 nike

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

输入:

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 则没有。

---- 已编辑 ----

假设表名是“example”,我想获取 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

但也许有更好的方法

最佳答案

你可以试试

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

关于MySQL 将两行算作一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43532772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com