[英]join one table multiple times in mysql
我有兩個表用於用戶和組成員信息。 我將兩個用戶ID存儲在groupmember
表中,一個作為group_userid
,另一個作為group_memberid
。 我想將用戶表與group_userid
和group_memberi
d group_memberi
。 我試過這個查詢:
SELECT U.*,
S1.user_id as folusrid,
S1.first_name,
S1.last_name,
S2.user_id as follwginuserid,
S2.first_name,
S2.last_name
FROM tbl_groupmemebers U
JOIN tbl_user S1 ON (S1.user_id = U.group_userid)
JOIN tbl_user S2 ON (S2.user_id = U.group_memberid)
WHERE U.group_id = '2'
並得到了結果,但結果是像這樣在同一行中返回我:
id group_id group_userid group_memberid group_joindate folusrid first_name last_name follwginuserid first_name last_name
3 2 18 11 2015-04-24 12:02:36 18 Mohammadshoaib Swichmann 11 Clemen Swichmann
我希望將結果放在兩個單獨的列中。
試試這個聯盟
(
SELECT U.*,
S1.user_id as user_id,
S1.first_name,
S1.last_name,
'group_userid' as data_type
FROM tbl_groupmemebers U
JOIN tbl_user S1 ON (S1.user_id = U.group_userid)
WHERE U.group_id = '2'
)
UNION ALL
(
SELECT U.*,
S2.user_id as user_id,
S2.first_name,
S2.last_name,
'group_userid' as data_type
FROM tbl_groupmemebers U
JOIN tbl_user S2 ON (S2.user_id = U.group_memberid)
WHERE U.group_id = '2'
);
這將為您提供每個U.group_userid的一條記錄,以及每個U.group_memberid的一條記錄。 使用“ data_type”列(最后一個)來確定哪一個是什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.