[英]join one table multiple times in mysql
I've two tables for user and group member info. 我有两个表用于用户和组成员信息。 I am storing two user ids in
groupmember
table one as group_userid
and another one as group_memberid
. 我将两个用户ID存储在
groupmember
表中,一个作为group_userid
,另一个作为group_memberid
。 I want to join user table with group_userid
and with group_memberi
d. 我想将用户表与
group_userid
和group_memberi
d group_memberi
。 I've tried this query: 我试过这个查询:
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'
and got the result but the result is returning me in same row like this: 并得到了结果,但结果是像这样在同一行中返回我:
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
I want the result in two separate columns. 我希望将结果放在两个单独的列中。
Try this UNION 试试这个联盟
(
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'
);
This will give you one record for every U.group_userid and one record for every U.group_memberid. 这将为您提供每个U.group_userid的一条记录,以及每个U.group_memberid的一条记录。 Use the 'data_type' column (the last one) to identify which one is what.
使用“ data_type”列(最后一个)来确定哪一个是什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.