gpt4 book ai didi

mysql - MySQl 与 SQL Server 与 Oracle 中的分层查询

转载 作者:行者123 更新时间:2023-11-29 00:03:39 26 4
gpt4 key购买 nike

我正在尝试在 oracle/mysql/sqlserver 中实现 Connect By 查询以了解工作中的差异。试图了解它是如何工作的。所以我有一个看起来像这样的简单表格:

empno ename mno
1 KS null
2 AB 2
3 BC 1
4 TR 3
5 QE 2
6 PL 3
7 LK 6

Oracle 中的查询(工作)

SELECT empno, ename, mno
FROM test
START WITH ename = 'LK'
CONNECT BY empno = PRIOR mno;

SQLServer 中的查询(不工作):

WITH    q AS 
(
SELECT *
FROM test
WHERE empno = 5
UNION ALL
SELECT m.*
FROM test m
JOIN q
ON m.mno = q.mno
)
SELECT *
FROM q

我如何在 SqlServer 中执行此操作? CTE 到底是如何工作的?以及相同的查询在 MySQL 中会是什么样子?

编辑

Oracle 查询返回的预期结果是:

EMPNO   ENAME   MNO
7 LK 6
6 PL 3
3 BC 1
1 KS (null)

SQLFiddle (for Oracle) here

最佳答案

你的加入条件是m.mno = q.mno,当我认为你想要m.empno = q.mno

关于mysql - MySQl 与 SQL Server 与 Oracle 中的分层查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28531727/

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