mysql 列转行 多表关联
时间: 2023-08-31 16:09:10 浏览: 85
mysql 多表连接
你可以使用MySQL的PIVOT操作来将列转行,并且可以通过多表关联来实现。下面是一个示例:
假设有两个表:表和表B,它们通过某个共的字段进行关联。
表A:
| id | name |
|----|------|
| 1 | A |
| 2 | B |
| 3 | C |
表B:
| id | attribute | value |
|----|-----------|-------|
| 1 | attr1 | 10 |
| 1 | attr2 | 20 |
| 2 | attr1 | 30 |
| 3 | attr2 | 40 |
要将表B的attribute列转为行,并与表A关联,可以使用以下查询:
```sql
SELECT A.id, A.name,
MAX(CASE WHEN B.attribute = 'attr1' THEN B.value END) AS attr1,
MAX(CASE WHEN B.attribute = 'attr2' THEN B.value END) AS attr2
FROM tableA A
LEFT JOIN tableB B ON A.id = B.id
GROUP BY A.id, A.name;
```
查询结果:
| id | name | attr1 | attr2 |
|----|------|-------|-------|
| 1 | A | 10 | 20 |
| 2 | B | 30 | NULL |
| 3 | C | NULL | 40 |
这样,你就将表B的attribute列转为了行,并通过多表关联与表A进行了合并。你可以根据自己的需求修改查询语句和表名。
阅读全文