SQL Union / Join难题

时间:2014-08-14 19:06:04

标签: sql sql-server left-join union

我找不到任何符合条件的东西。这可能是因为我不确切地知道我在寻找什么,但希望你们都能提供帮助。

我有2张桌子。在表1中,我有三列要合并到此查询的单个列中。每个都基于不同的标准。我目前正在通过联盟实现这一目标(我只想要独一无二)。基本上是:

SELECT Column1, Column2 as Union_Data FROM Table1 WHERE Criteria1 = XXX
UNION
SELECT Column1, Column3 FROM Table1 WHERE Criteria2 = xxx
UNION
SELECT Column1, Column4 FROM Table1 WHERE Criteria3 = xxx

然后我想加入第二个表,其中Union_Data = Table2.Column1并选择Table2.Column2。 输出必须是三列。 Table1.Column1,Union_Data,Table2.Column2我可以通过union获取前两列,但第三列(仅存在于第二个表中并基于Union_Data列连接)让我感到厌烦。

感谢任何可以帮助我的人。

1 个答案:

答案 0 :(得分:1)

你想这样做吗?

SELECT u.Column1, Union_Data, Table2.Column2
FROM 
  (
    SELECT Column1, Column2 as Union_Data FROM Table1 WHERE Criteria1 = XXX
    UNION
    SELECT Column1, Column3 FROM Table1 WHERE Criteria2 = xxx
    UNION
    SELECT Column1, Column4 FROM Table1 WHERE Criteria3 = xxx
  ) u 
     INNER JOIN 
    Table2 ON 
        u.Union_Data = Table2.Column1