2016-06-09 2 views
0

Gibt es eine Möglichkeit zur Verknüpfung von Tabellen und Gruppenergebnisse als einzelnes Array einzelne Abfrage mit MySQL und SQL Servervon ouput als einzelnes Array Join und Gruppen

i zwei Tabellen haben Angenommen, Benutzer und user_jobs

Benutzer:

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 

ich drei Reihen bekommen für das Abfrageergebnis.Ist es trotzdem, diese Tabellen zu verbinden und das Ergebnis als ein Array auszugeben?

Erwartete Ausgabe: -

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

Antwort

1

Sie können versuchen, GROUP_CONCAT wie diese und schalten Sie dieses Ergebnis (eine durch Kommata getrennte Liste in ein Array) mit 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: dachte Wenn diese Frage eine MySQL-Tag hatte ... Ich denke nicht Wenn Sie SQL Server verwenden, können Sie versuchen,

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 

und dann in PHP haben es Schleife durch das zurückgegebene Resultset Erstellen der Arrays für Job, Ort, Benennung, wenn eine Benutzer-ID geändert wird, um einen neuen Benutzer zu erstellen

+0

vielen Dank. – youv

+0

group_concat funktioniert nur in mysql, wie wäre es in sql server.thanks – youv

+0

aktualisiert meine Antwort, nicht so vertraut mit SQL-Server. –

Verwandte Themen