Mysql如何纵列变横列
写数据库遇到的一个问题
现在有供应商表supplier和供应商联系人表supplier_person,他们之间是一对多的关系
联系人表:中有两种类型“IN”“OUT” ,为内部联系人和外部联系人
现在想要一个新表s 使得新表s中有供应商,供应商相关的内部联系人和外部联系人
供应商表supplier
id | name |
---|---|
1 | 公司1 |
2 | 公司2 |
供应商联系人表supplier_person
id | type | person | supplier_id |
---|---|---|---|
1 | IN | 小红 | 1 |
2 | IN | 小王 | 2 |
3 | OUT | 小李 | 1 |
4 | OUT | null |
新表s
id | name | IN_person | OUT_person |
---|---|---|---|
1 | 公司1 | 小红 | 小李 |
2 | 公司2 | 小王 | 小李 |
语法
select id,name,
sum(case when type='IN' then person end) as IN_person,
sum(case when type='OUT' then person end) as OUT_person,
from supplier left join supplier_person