gpt4 book ai didi

sql - postgresql : join with condition and without duplication

转载 作者:行者123 更新时间:2023-11-29 12:48:53 25 4
gpt4 key购买 nike

我有一个表 A,其中包含一系列唯一 ID。我有另一个表 B,其中包含此 ID 的一部分但不是每个 ID,一个名为值的字段和另一个名为 idcategory 的字段。在这个表 B 中,由于类别不同,id 可以出现多次。

我想以唯一的方式在表 A 中列出我的所有 ID,并在定义的类别 (idcategorie = 1) 中列出表 B 中关联的特定值。表 A 中的 ID 不能出现在表 B 中,但无论如何我都希望在我的最终结果中得到这些信息,并且不重复。

这是一个例子:

表A

id
-----
1
2
3
4
5
6
7
8

表B

id | idcategory  | value
------------------------
1 | 1 | red
1 | 2 | circle
2 | 1 | green
3 | 1 | blue
3 | 2 | square
4 | 1 | green
4 | 2 | circle
5 | 1 | red
5 | 2 | square
8 | 2 | circle

结果

id | idcategory  | value
------------------------
1 | 1 | red
2 | 1 | green
3 | 1 | blue
4 | 1 | green
5 | 1 | red
6 | null | no value
7 | null | no value
8 | null | no value

在 postgreSQL 中实现此目标的最佳方法是什么? 左连接 ? 联合 ?

最佳答案

你似乎想要一个左连接:

select a.id, b.idcategory, b.value
from a left join
b
on b.id = a.id and b.idcategory = 1;

value 列有 NULL 而不是 'no value'。您可以替换它,但 NULL 通常用于此目的。

关于sql - postgresql : join with condition and without duplication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58560320/

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