简体   繁体   English

在mysql中多次联接一个表

[英]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_useridgroup_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM