gpt4 book ai didi

sql - SQL联合/联接查询

转载 作者:行者123 更新时间:2023-12-02 04:14:36 24 4
gpt4 key购买 nike

我有一个用户配置文件表,其中包含User NameManager列和许多其他字段,例如Amount

记录示例:

User    Manager  Amount
A B 100
x y 200
B C 300
M N 800
C D 500
P Q 1000
D E 1000

我试图得到如下结果:
User    Manager Amount
A B 100
B C 300
C D 500
D E 1000

基本上,我只想以级联的方式显示结果,以便提取所有行,直到找到用户层次结构中的所有管理器为止。有人可以帮忙吗?

============

更新

我设法使用以下查询解决了问题:
WITH rec(c1, c2)
AS (SELECT c1, c2 FROM table WHERE c2 = 'A'
UNION ALL
SELECT table.c1, table.c2 FROM table, rec WHERE table.c2 = rec.c2)
SELECT c1, c2 FROM rec

谢谢您的帮助。
阿比

最佳答案

没有执行此操作的“标准” sql,但是大多数数据库将SQL扩展为具有这些选项。

在Oracle中,您可以执行以下操作:

SELECT USER, Manager, Amount FROM employees CONNECT BY PRIOR USER = Manager;

请参阅以下示例:
http://www.ibm.com/developerworks/data/library/techarticle/dm-0510rielau/
对于db2示例

关于sql - SQL联合/联接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3457260/

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