2017-02-22 7 views
0

Мне нужна помощь с помощью сложного оператора select в SQL. У меня есть эти две таблицы здесь:SQL make select в select

Таблица пользователя:

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.......

Как ча это сделать?

Большое спасибо!

+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

Мне так трудно понять :(Нужно это для школьного проекта завтра –