2

我想知道是否可以将 2 个单独表中的 2 列别名为同名。

例如,我想将电子邮件表与用户表和管理员表连接起来,并让各自的“名称”列组合在同一列中。

Email Table: Email ID | Email Address

User Table: Username| Email ID

Admin Table: Username| Email ID

Result:

Username | Email Address
4

2 回答 2

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

这将堆叠UserAdmin表,然后JOINEmail表。

请注意,如果有重复项并且您想删除它们,您应该使用UNION而不是UNION ALL.

于 2012-11-28T00:25:21.743 回答
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
于 2012-11-28T00:25:28.633 回答