gpt4 book ai didi

sql - 从两个表中获取数据并显示在一行中,不重复,带有 where 条件

转载 作者:行者123 更新时间:2023-11-29 14:24:50 26 4
gpt4 key购买 nike

我想从两个表中取出数据并在一行中输出。输出将有两列“to”和“from”,其中条件为“from”将包含来自第二个表的数据,其中类型为 true ,“to”列将包含来自第二个表的数据,其中类型为 false 。第二个表中的 FK_ID 链接到第一个表中的 ID。请帮忙查询。

我正在尝试处理内部联接,但 union 无法使其工作。提前致谢。

表 1

ID | PATH|
1 | ABC |
2 | EFG |

表 2

ID | FK_ID | NUMBER | TYPE
20 | 1 | 123 | TRUE
21 | 1 | 456 | FALSE
28 | 2 | 888 | FALSE
29 | 2 | 939 | TRUE

输出应该是:

ID |  PATH | TO  | FROM
1 | ABC | 456 | 123
2 | EFG | 888 | 939

最佳答案

使用带有旋转逻辑的聚合来识别每个路径的“到”和“从”组件:

SELECT
t1.ID,
t1.PATH,
MAX(CASE WHEN t2.TYPE = 'FALSE' THEN t2.NUMBER END) AS "TO",
MAX(CASE WHEN t2.TYPE = 'TRUE' THEN t2.NUMBER END) AS "FROM"
FROM table1 t1
LEFT JOIN table2 t2
ON t1.ID = t2.FK_ID
GROUP BY
t1.ID,
t1.PATH
ORDER BY
t1.ID;

关于sql - 从两个表中获取数据并显示在一行中,不重复,带有 where 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59015622/

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