[英]SQL How to select from multiple values in joined table
I have two tables A and B joined with a common id field.我有两个表 A 和 B 加入了一个公共 id 字段。 Table A has single entries per id.
表 A 每个 ID 都有一个条目。 Table B has multiple entries per id.
表 B 每个 ID 有多个条目。 Table B has two columns "name" and "customertype".
表 B 有两列“名称”和“客户类型”。 I want to be able to SELECT columns from A and B but I want to show the column "name" from Table B three times: once for each separate match of customertype.
我希望能够从 A 和 B 中获取 SELECT 列,但我想将表 B 中的“名称”列显示三次:一次针对客户类型的每个单独匹配项。
Example:例子:
I want to be able to SELECT and display:我希望能够 SELECT 并显示:
id,country,name(from EC),date,name(from T1),name(from T2)
How do I do this?我该怎么做呢? I am a novice SQL user.
我是新手SQL用户。 Thanks in advance for advice.
在此先感谢您的建议。
You can use conditional aggregation:您可以使用条件聚合:
select a.id, a.country, a.date,
max(case when customertype = 'EC' then name end) as ec,
max(case when customertype = 'T1' then name end) as t1,
max(case when customertype = 'T2' then name end) as et2
from a join
b
on a.id = b.id
group by a.id, a.country, a.date
You can join
and use conditional aggregation:您可以
join
并使用条件聚合:
select a.id, a.country, a.date,
max(case when b.customertype = 'EC' then name end) name_ec,
max(case when b.customertype = 'T1' then name end) name_t1,
max(case when b.customertype = 'T2' then name end) name_t2
from tablea a
inner join tableb b on b.id = a.id
group by a.id, a.country, a.date
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.