gpt4 book ai didi

SQL Server - 从两个表和一个表中获取数据

转载 作者:行者123 更新时间:2023-12-04 13:57:11 25 4
gpt4 key购买 nike

请看我下面的表格和数据——

DECLARE @test1 TABLE (Ref nvarchar(10) NULL, Dates datetime NULL);
INSERT INTO @test1(Ref, Dates)
VALUES
('R1', '2018-10-26'),
('R2', '2018-10-26'),
('R5', null);

DECLARE @test2 TABLE (P_Ref nvarchar(50) null, Name nvarchar(50) null);
INSERT INTO @test2(P_Ref, Name)
VALUES
('R1', 'N1'),
('R1', 'N2'),
('R2', 'N1'),
('R2', 'N2'),
('R3', 'N1'),
('R3', 'N2'),
('R4', 'N2'),
('R5', 'N3'),
('R6', 'N3'),
('R7', 'N4');

我正在使用 where表 1 中的条件 @test1 ,它是 Ref列与表 2 @test2 P_Ref柱子。
我想要两个表中的所有相关数据以及所有匹配项 Name来自 @test2 table

我的查询是-
select t1.Ref, t2.P_Ref, t2.Name from
@test1 t1
right join @test2 t2
on t1.Ref = t2.P_Ref
where t1.Dates is not null

我得到的输出 -
   Ref    P_Ref    Name
R1 R1 N1
R1 R1 N2
R2 R2 N1
R2 R2 N2

我在看下面的输出 -
   Ref    P_Ref    Name
R1 R1 N1
R1 R1 N2
R2 R2 N1
R2 R2 N2
NULL R3 N1
NULL R3 N2
NULL R4 N2

有人可以帮助我如何实现这一目标。

提前致谢

最佳答案

试试下面的查询

SELECT t1.Ref, t2.P_Ref, t2.Name
FROM @test1 t1
RIGHT JOIN @test2 t2 ON t1.Ref = t2.P_Ref
WHERE t2.Name IN(
SELECT DISTINCT t2.Name
FROM @test1 t1
JOIN @test2 t2 ON t1.Ref = t2.P_Ref
WHERE t1.Dates IS NOT NULL
)

关于SQL Server - 从两个表和一个表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53004783/

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