SQL在选择中做出选择
问题描述:
我需要SQL中复杂select语句的帮助。我有这两个表在这里:SQL在选择中做出选择
表用户:
表contacts_from_user:
当我做出选择
SELECT name, vorname, gebdat, bezeichnung, wert
FROM user
JOIN contacts ON u_id = user_u_id
我得到多个一行用户因为他有一个以上的联络方式,但我需要把它放在只有一行:
行应该是这样的容貌:
name, vorname, gebdat, bezeichung_1, wert_1, bezeichnung_2, wert_2.......
我CA如何做到这一点?
非常感谢!
答
在伪代码,来处理这样的情况下最好的办法是:
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
对我来说很难理解:(需要一个学校项目明天 –
你想什么一行包含哪些内容?它是名字,vorname,gebdat,bezeichung_1,wert_1,bezeichnung_2,wert_2 .... bezeichnung_n,wert_n ?? 或者只显示第一个联系方式? – paqash
是的,你的例子是正确的!我忘了将它添加到我的问题。我现在要做到这一点 –
看看这个:https://stackoverflow.com/questions/1067428/combine-multiple-child-rows-into-one-row-mysql – paqash