2013-10-21 69 views
1

我有2个表并不能得到我的MySQL查询工作:MySQL的选择行并加入到多个记录

First Table users: 
user_id name 
------------ 
1  Bob 
2  Alice 

Second Table fields: 
id unser_id field_id value 
----------------------------- 
1 1  4   foo 
2 1  5   10 
3 2  4   bar 

现在我想加入的表中输出的方式:

[0] => (
      [user_id] => 1 
      [name] => Bob 
      [fields] => (
         [4] => foo 
         [5] => 10 
        ) 
[1] => (
      [user_id] => 2 
      [name] => Alice 
      [fields] => (
         [4] => bar 
        ) 
     ) 

非常感谢!

我想:

SELECT u.user_id, 
     u.name 
FROM users as u 
INNER JOIN fields as f on u.user_id = d.user_id 

但我为每一个用户仅仅是第一场项目。

+1

我强烈建议您发布您的代码。告诉我们你想要发生的事情并不像告诉我们你是如何努力实现的那样有用。 – Brian

+0

它在域表中的unser_id或用户ID? – Mihai

+0

它的user_id,字段表中的id是字段行的唯一索引 –

回答

0
SELECT user_id,name,GROUP_CONCAT(value SEPARATOR ',')as field FROM users u JOIN fields f 
ON u.user_id=f.unser_id GROUP BY user_id 

也许这样的事情?

+0

嗨,是的,但我想用f.field_id来映射f.value,那会很好。 –

+0

我想我可以使用两次GROUP_CONCAT,工作正常,非常感谢! –

0
select u.user_id,u.name,f.field_id,f.value from users u LEFT JOIN fields f ON u.user_id = f.unser_id 
+0

嗨,这个只输出字段的第一行。 –