有没有办法加入一个由两个表UNIONed组成的表?

时间:2017-07-11 20:01:46

标签: sql sql-server

SELECT 
    a.First_Name
   ,b.Last_Name

FROM table a
JOIN table b
UNION table c
ON a.ID=b.ID

我甚至不确定语法是如何形成的。基本上我想要的是UNION表b和c然后将新表连接到表a。

3 个答案:

答案 0 :(得分:1)

您可以加入子查询:

SELECT 
  a.First_Name,
  bc.Last_Name
FROM a
JOIN 
(
  SELECT ID, Last_Name FROM b
  UNION
  SELECT ID, Last_Name FROM c
) bc ON bc.ID = a.ID;

答案 1 :(得分:0)

使联合成为子查询

SELECT 
    a.First_Name
   ,bc.Last_Name
FROM table a
JOIN (
    SELECT * FROM table b
    UNION 
    SELECT * FROM table c
    ) AS bc
ON a.ID=bc.ID

请注意,子查询必须有自己的别名(在本例中为bc),应在join子句和select中引用(意味着您不能引用表b或{直接在子查询之外的{1}}。

答案 2 :(得分:0)

如果您使用正确的连接子句

,则联合的结果可以加入其他表

你可以使用这个sintax

  select a.col1, t.name 
  from table3 c 
  inner join (
        select id, name1 as name
        from table1 a
        union id, name2
        from table2 b
  ) t on. t.id = a.id