MySQL - Как мне достичь желаемого результата с помощью LEFT JOIN? - PullRequest
0 голосов
/ 29 августа 2011

Следующий запрос:

   SELECT friendship.dom, friendship.sub,
          user.id, user.fname, user.lname
     FROM friendship
LEFT JOIN user ON friendship.dom = user.id

приводит к следующему:

dom  sub  id  fname  lname 
---------------------------
2    1    2   Seun   Soti
1    2    1   Donal  Lynch

Но как мне сделать вывод похожим на:

dom  sub  id_dom  fname_dom  lname_dom  id_sub  fname_sub  lname_sub
----------------------------------------------------------------------
2    1    2       Seun       Soti       1       Donal      Lynch
1    2    1       Donal      Lynch      2       Seun       Soti

Iпросто нужно, чтобы оба пользователя (dom и sub) были включены в вывод.

Ответы [ 3 ]

2 голосов
/ 29 августа 2011

Как насчет этого:

SELECT 
  f.dom, f.sub,
  d.id dom_id, d.fname dom_fname, d.lname dom_lname,
  s.id sub_id, s.fname sub_fname, s.lname sub_lname
FROM friendship f
LEFT JOIN user d ON f.dom = d.id
LEFT JOIN user s ON f.sub = s.id
1 голос
/ 29 августа 2011
 SELECT friendship.dom, friendship.sub,
      user.id, user.fname, user.lname,
      u1.id, u1.fname, u1.lname
 FROM friendship 
 FROM friendship
 LEFT JOIN user ON friendship.dom = user.id 
 LEFT JOIN user as u1 ON friendship.sub = u1.id
1 голос
/ 29 августа 2011

Попробуйте это:

SELECT friendship.dom, friendship.sub, user.id AS id_dom, ...
FROM friendship
LEFT JOIN user ON friendship.dom = user.id

Это должно сработать для вас. НТН

...