SQL在选择中做出选择

问题描述:

我需要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://*.com/questions/1067428/combine-multiple-child-rows-into-one-row-mysql – paqash

在伪代码,来处理这样的情况下最好的办法是:

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

对我来说很难理解:(需要一个学校项目明天 –