我在 3 张桌子之间做一个 UNION。为了让您了解情况,一张表被视为主表,另外两张表被视为子表。2 个子表对于每种情况始终具有相同数量的记录。所以我想在这3个表之间建立一个联合,在这个联合中我想重复在主表中获取的列中的信息并列出2个子表的信息,其中子表1中的每一行都对应于该行在子表2中。由于专业原因,我无法放置真实的代码,所以这里是一个与我的真实案例相对应的简单示例。考虑一个名为 Author (Author_ID, Author_FirstName, Author_LastName) 的表。该表将是我们的主表。然后考虑我们有一个名为 Adresses (Adress_ID, Street_Coord, Author_ID) 的表,这将是我们的子表 1。然后考虑名为 Cities 的表(City_ID、City_Name、Author_ID)。我们的作者 X 在 2 个城市有 2 个地址。当我执行我的查询时,我得到了完全合乎逻辑的结果 R1,但我想修改我的查询以获得结果 R2。您能帮我更改查询以获得结果 R2 吗?
SQL查询:
SELECT "Author"."Author_ID", "Author"."Author_FirstName", "Author.Author_LastName",
TO_CHAR(NULL) AS "Street_Coord", TO_CHAR(NULL) AS "City_Name"
FROM "Author"
WHERE "Author"."Author_ID"='X'
UNION
SELECT TO_NUMBER(NULL) AS "Author_ID", TO_CHAR(NULL) AS "Author_FirstName", TO_CHAR(NULL) AS "Author_LastName",
"Adresses"."Street_Coord", TO_CHAR(NULL) AS "City_Name"
FROM "Adresses"
WHERE "Adresses"."Author_ID"='X'
UNION
SELECT TO_NUMBER(NULL) AS "Author_ID", TO_CHAR(NULL) AS "Author_FirstName", TO_CHAR(NULL) AS "Author_LastName",
TO_CHAR(NULL) AS "Street_Coord", "Cities"."City_Name"
FROM "Cities"
WHERE "Cities"."Author_ID"='X'
结果 R1:
ID_AUTHOR | AUTHOR_FirstName | AUTHOR_LastName | Street_Coord | City_Name |
----------------------------------------------------------------------------------
X |James | Conor | NULL | NULL |
----------------------------------------------------------------------------------
X |NULL | NULL | 1245 rich st | NULL |
----------------------------------------------------------------------------------
X |NULL | NULL | 154 music st | NULL |
----------------------------------------------------------------------------------
X |NULL | NULL | NULL | Madrid |
----------------------------------------------------------------------------------
X |NULL | NULL | NULL | Barcelona |
----------------------------------------------------------------------------------
结果 R2:我希望您帮助获得此结果:
ID_AUTHOR | AUTHOR_FirstName | AUTHOR_LastName | Street_Coord | City_Name |
----------------------------------------------------------------------------------
X |James | Conor | 1245 rich st | Madrid |
----------------------------------------------------------------------------------
X |James | Conor | 154 music st | Barcelona |
----------------------------------------------------------------------------------
非常感谢, 瓦卢德