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

次に、次のユニオンはそれらを1つのリストにまとめる必要があります。ユーザーまたは管理者テーブルのEmailIdが無効である場合を考慮して、LEFTJOINを使用していることに注意してください。

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 に答える