2017-02-22 75 views
0

我需要SQL中複雜select語句的幫助。我有這兩個表在這裏:SQL在選擇中做出選擇

表用戶:

enter image description here

表contacts_from_user:

enter image description here

當我做出選擇

SELECT name, vorname, gebdat, bezeichnung, wert 
FROM user 
    JOIN contacts ON u_id = user_u_id 

我得到多個一行用戶因爲他有一個以上的聯絡方式,但我需要把它放在只有一行:

enter image description here

行應該是這樣的容貌:

name, vorname, gebdat, bezeichung_1, wert_1, bezeichnung_2, wert_2.......

我CA如何做到這一點?

非常感謝!

+0

你想什麼一行包含哪些內容?它是名字,vorname,gebdat,bezeichung_1,wert_1,bezeichnung_2,wert_2 .... bezeichnung_n,wert_n ?? 或者只顯示第一個聯繫方式? – paqash

+0

是的,你的例子是正確的!我忘了將它添加到我的問題。我現在要做到這一點 –

+0

看看這個:https://stackoverflow.com/questions/1067428/combine-multiple-child-rows-into-one-row-mysql – paqash

回答

0

在僞代碼,來處理這樣的情況下最好的辦法是:

query = SELECT A.ID, A.stuff, B.stuff FROM A JOIN B ON A.ID = B.A_ID 
results = run query 
prev_A_ID = impossible_A_ID 
for each result 
    if prev_A_ID not equal result_A_ID 
     create new A and set as current A 
    add B.stuff to current A 
    set prev_A_ID to result_A_ID 
end for 
+0

對我來說很難理解:(需要一個學校項目明天 –