选择多列成一行

时间:2018-04-09 08:40:34

标签: sql

假设我有两张桌子:

表A:

Item1Name  Item1Code  Item2Name   Item2Code
ABC         001         DEF          002

表B:

ItemCode     ItemType
  001        Cookware
  002         Drinks

select语句应该生成以下结果?

Item1Name  Item1Code  Item2Name   Item2Code   Item1Type    Item2Type
ABC         001         DEF          002       Cookware      Drinks

1 个答案:

答案 0 :(得分:0)

似乎您有一个包含项目特征的项目明细表(表B)和另一个与两个项目相关的表格(表A)。您应该从表A开始,并与表B连接两次(每个项目一次),以获得它们的特性。

SELECT
    A.Item1Name,
    A.Item1Code,
    B1.ItemType,
    A.Item2Name,
    A.Item2Code,
    B2.ItemType
FROM
    TableA A
    LEFT JOIN TableB B1 ON A.Item1Code = B1.ItemCode
    LEFT JOIN TableB B2 ON A.Item2Code = B2.ItemCode

您应检查是否需要INNERLEFT加入(如果未找到匹配的记录,则左侧将返回NULL。)