我想知道是否有可能从别名2和独立的表2列同名。别名2列同名
例如,我想加入一个用户表和管理员表中的电子邮件表,让各自的“名称”列在同一列相结合。
Email Table: Email ID | Email Address
User Table: Username| Email ID
Admin Table: Username| Email ID
Result:
Username | Email Address
我想知道是否有可能从别名2和独立的表2列同名。别名2列同名
例如,我想加入一个用户表和管理员表中的电子邮件表,让各自的“名称”列在同一列相结合。
Email Table: Email ID | Email Address
User Table: Username| Email ID
Admin Table: Username| Email ID
Result:
Username | Email Address
我相信这是你想要得到什么:
SELECT a.Username, a.Email_ID, b.Email_Address
FROM
(SELECT Username, Email_ID FROM User
UNION ALL
SELECT Username, Email_ID FROM Admin) a
INNER JOIN Email b ON b.Email_ID = a.Email_ID
这将堆叠User
和Admin
表,然后JOIN
的Email
表。
注意,如果有重复,你想删除它们,你应该使用的UNION
代替UNION ALL
。
假设你的表有以下几列
Email: EmailId, EmailAddress
User: UserName, EmailId
Admin: UserName, EmailId
那么下面工会应该让他们进入一个列表。注意我正在使用LEFT JOIN来允许用户或管理员表中的EmailId无效的情况
SELECT u.UserName, e.EmailAddress
FROM USER u
LEFT JOIN Email e ON e.Id = u.EmailId
UNION
SELECT a.UserName, e.EmailAddress
FROM Admin u
LEFT JOIN Email e ON e.Id = a.EmailId
所以你希望这些列是分开的,但要有相同的名称,或者你想要它们完全合并以及? – RonaldBarzell
@ user1161318完全合并,好像UNION是,我一直在寻找神奇的关键字。 – Klathmon