2013-10-21 72 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

嗨,這個只輸出字段的第一行。 –