我正在尝试从tb_user表中选择所有tept_no,而从tb_user表中选择user_no,但是WITH()语句即使有更多数据也只能选择两个数据。
我有一个代码,只选择两个数据,但应该再选择两个,因为总共有4个。
@user_no INT
WITH deptChild AS (
SELECT dept_no, parent_dept_no, name
FROM [dbo].[tb_dept] D
WHERE D.dept_no = (SELECT d.parent_dept_no FROM tb_dept d
INNER JOIN tb_dept_user du
ON d.dept_no = du.dept_no
Inner join tb_user u
ON du.user_no = u.user_no
where u.user_no = @user_no)
UNION ALL
SELECT D.dept_no, D.parent_dept_no, D.name
FROM [dbo].[tb_dept] D
INNER JOIN deptChild
ON D.parent_dept_no = deptChild.dept_no
)
select * from deptChild
这是tb_dept表。
dept_no || company_no || parent_dept_no || dept_id ||名称
221 || 15 || 0 || NULL || 123123
1721 || 15 || 221 || NULL || TEST1
1722 || 15 || 1721 || NULL || TEST2
1723 || 15 || 1722 || NULL || TEST3
TEST3部门没有user_no 1144。
当我执行上面的代码时,结果就是这个。
dept_no || parent_dept_no ||名称
1722 || 1721 || TEST2
1723 || 1722 || TEST3
如您所见,仅选择了两个数据。我想展示全部四个。 我该如何解决?