2016-06-09 38 views
0

有沒有辦法加入使用使用MySQL和SQL服務器加入和輸出中組作爲單個陣列

假設單個查詢表和分組結果爲單個陣列我有兩個表的用戶和user_jobs

用戶:

user_id username 
------- ---------- 
1  user1 
2  user2 

user_jobs:

user_id job place designation 
------ ---- ------ --- 

1   job1 p1  d1 
1   job2 p2  d2 
1   job3 p3  d3 

select * from user join user_jobs on user.user_id = user_jobs.user_id 

我會得到三行爲查詢result.Is無論如何加入這些表並輸出結果作爲一個數組?

預期輸出: -

[ 
    username:user1, 
    user_id:1, 
    job:array(jobs), 
    place:array(place), 
    designation:array(designation) 
] 

回答

1

您可以嘗試使用GROUP_CONCAT像這樣,把這個結果(用英文逗號分隔成數組)使用PHP explode

select user.username,user.user_id, 
     GROUP_CONCAT(job) as jobs, 
     GROUP_CONCAT(place) as place, 
     GROUP_CONCAT(designation) as designation 
from user join user_jobs on user.user_id = user_jobs.user_id 
GROUP BY user_id,user_name 

UDPATE: 如果認爲這個問題有一個MySQL的標籤......我想不是 如果您使用的SQL Server, 您可以嘗試

SELECT user.username,user.user_id, 
     job, place, designation 
from user join user_jobs on user.user_id = user_jobs.user_id 
ORDER BY user.username,user.user_id 

,然後在PHP有它循環遍歷返回的結果集構建陣列作業,放置,指定檢測user_id更改以創建新用戶時

+0

非常感謝。 – youv

+0

group_concat只適用於mysql,如何在sql server.thanks – youv

+0

更新我的答案,對不起,不熟悉sql服務器。 –