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
次に、次のユニオンはそれらを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