我想知道是否可以将2个独立表中的2列别名为同名。
例如,我想加入一个包含用户表和管理表的电子邮件表,并将相应的“名称”列合并到同一列中。
Email Table: Email ID | Email Address
User Table: Username| Email ID
Admin Table: Username| Email ID
Result:
Username | Email Address
答案 0 :(得分:2)
我相信这是你想要的:
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
。
答案 1 :(得分:1)
假设您的表格包含以下列
Email: EmailId, EmailAddress
User: UserName, EmailId
Admin: UserName, EmailId
然后以下联合应该将它们放入一个列表中。注意我使用LEFT JOIN来允许User或Admin表中的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