加入3个表来获得单行

时间:2015-06-03 08:22:39

标签: mysql sql select

我正在尝试连接多个表来获取每个id的单行结果。此结果将发送到角度UI

我有3个表userfriendstrip user可以包含多个friends,但只有一个trip

我喜欢在一行中获取与用户相对应的所有详细信息,可能friends作为数组字段?

这就是我的表格。

http://sqlfiddle.com/#!9/0879d/2

https://gist.github.com/tomalex0/9dee4fff85583732e7d0

1 个答案:

答案 0 :(得分:1)

group_concat应该为你做到这一点:

SELECT    u.*, t.*, friendlist
FROM      user u
LEFT JOIN trip t ON u.id = t.user_id
LEFT JOIN (SELECT   user_id, GROUP_CONCAT(CONCAT (name, '- ', email)) friendlist
           FROM     friends
           GROUP BY user_id) f ON f.user_id = u.id