繁体   English   中英

有没有办法联接由两个表联合在一起的表?

[英]Is there a way to JOIN a table consisting of two tables UNIONed together?

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。

您可以加入子查询:

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;

将联合作为子查询

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中引用该别名(这意味着您不能直接在子查询外部引用表bc )。

如果您使用适当的join子句,则可以将联合的结果联接到others表

你可以用这个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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM