gpt4 book ai didi

sql - 使用左连接选择一对多关系中的第一条记录

转载 作者:行者123 更新时间:2023-12-03 06:52:30 25 4
gpt4 key购买 nike

我正在尝试使用左连接连接两个表。结果集必须仅包含“正确”连接表中的第一条记录。

假设我有两个表 A 和 B,如下所示;

表“A”

code | emp_no

101 | 12222
102 | 23333
103 | 34444
104 | 45555
105 | 56666

表“B”

code | city       | county
101 | Glen Oaks | Queens
101 | Astoria | Queens
101 | Flushing | Queens
102 | Ridgewood | Brooklyn
103 | Bayside | New York

预期输出:

code | emp_no | city      | county
101 | 12222 | Glen Oaks | Queens
102 | 23333 | Ridgewood | Brooklyn
103 | 34444 | Bayside | New York
104 | 45555 | NULL | NULL
105 | 56666 | NULL | NULL

如果您注意到我的结果在左连接后只有表“B”中的一条匹配记录(无论匹配哪条记录)(并且它是一对多映射)

我需要从表 B 中选择第一个匹配的记录并忽略所有其他行。

请帮忙!

谢谢

最佳答案

经过一番尝试后,发现这比我预想的要棘手!假设 table_b 有一些唯一的单列(例如单字段主键),看起来您可以这样做:

SELECT table_a.code,
table_a.emp_no,
table_b.city,
table_b.county
FROM table_a
LEFT
JOIN table_b
ON table_b.code = table_a.code
AND table_b.field_that_is_unique =
( SELECT TOP 1
field_that_is_unique
FROM table_b
WHERE table_b.code = table_a.code
)
;

关于sql - 使用左连接选择一对多关系中的第一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8161438/

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