簡體   English   中英

在mysql中多次聯接一個表

[英]join one table multiple times in mysql

我有兩個表用於用戶和組成員信息。 我將兩個用戶ID存儲在groupmember表中,一個作為group_userid ,另一個作為group_memberid 我想將用戶表與group_useridgroup_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM