gpt4 book ai didi

sql - 通过链接表组合相互关联的表,不用担心链接表是否缺少某些数据

转载 作者:行者123 更新时间:2023-12-04 06:39:26 27 4
gpt4 key购买 nike

我有一个类似于以下示例的简单关系数据库设置

[Customer] --< [CGLink] >-- [Order]

Person:
Alias Name(PK)
A Bill
B Ben
C Bob
D Jim
E John

CGLink:
ID(PK) Alias Type
1 A W
2 A X
3 B W
4 B X
5 B Y
6 B Z
7 C Y
8 E Z

Group:
Type(PK) Group
W Double-U
X Eks
Y Whai
Z Zed

我想返回一组结果,如
Alias   Name   Group
A Bill Double-U
A Bill Eks
B Ben Double-U
B Ben Eks
B Ben Whai
B Ben Zed
C Bob Whai
D Jim
E John Zed

正如您所看到的,Jim 在链接表中没有关联数据,我想避免必须放置一行虚拟数据,我可以将所有没有组的人链接到以便让我返回这些数据。

我正在使用的查询是
SELECT p.Alias, p.Name, g.Group
FROM Person AS p, Group AS s, CGLink AS l
WHERE (p.Alias=l.Alias
AND l.Type=s.Type)
ORDER BY p.Alias, p.Name;

这返回
Alias   Name   Group
A Bill Double-U
A Bill Eks
B Ben Double-U
B Ben Eks
B Ben Whai
B Ben Zed
C Bob Whai
E John Zed

正如您所看到的,缺少 Jim 因为他没有关联的组。
我怎样才能得到我真正想要的结果?

干杯

最佳答案

尝试使用外部连接

SELECT p.Alias, p.Name, g.Group
FROM Person AS p
LEFT OUTER JOIN Group AS s ON p.Alias=l.Alias
LEFT OUTER JOIN CGLink AS l ON l.Type=s.Type
ORDER BY p.Alias, p.Name;

关于sql - 通过链接表组合相互关联的表,不用担心链接表是否缺少某些数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4442910/

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