如何加入这两个表以获取包含值的新列的新表?

时间:2016-09-23 15:34:37

标签: mysql sql

我有两张这样的表

id   Value   color
-------------------
1   Shirt    red
1   Bag     blue
1   Shoes    blue
1   ....

请注意,此表中我们可以包含任意数量的项目。

id   Name   Gender
-------------------
1    Mary    F

是否有任何SQL查询可以提供下表?

id   Name   Gender  Shirt   Bag  ...
-------------------------------------
1    Mary    F       red    blue  ...

由于

1 个答案:

答案 0 :(得分:2)

您可以像这样加入他们:

SELECT  t2.id,
        t2.Name,
        t2.Gender,
        MIN(CASE WHEN t1.Value = 'Shirt' THEN color END) Shirt,
        MIN(CASE WHEN t1.Value = 'Bag' THEN color END) Bag
FROM Table1 t1
INNER JOIN Table2 t2
    ON t1.id = t2.id
GROUP BY t2.id,
         t2.Name,
         t2.Gender;