Все привет, я туплю и не могу сообразить как сделать следующее. Предположим есть у нас:
таблица людей(person) которая состоит из id_person,name,surname. Имеет следующее содержимое:
(1,"Иван",'Иванов'), (2,"Петро","Петров"), (3,"Петро","Петров");
таблица машин(auto) которая состоит из id_auto,name,number. Имеет следующее содержимое:
(1,"ford",'A101MP'), (2,"nissan","A151AO"), (3,"lada","M199BD"), (4,"mazda",'A333CK'), (5,"ИЖ","H777CO"), (6,"ГАЗ","H888HH");
Есть таблица которая содержит набор,человек-машина, ибо у одного человека может быть несколько машин. Назовем таблицу autoPerson, состоит из id, id_person, id_auto; имеет следующее содержимое:
(1,1,6), (2,2,4), (3,2,5), (4,2,1), (5,3,2), (6,3,3);
Мне нужно сформировать запрос select который выводил бы список пользователь и перечисление машин которые ему принадлежат. Желаемый результат выглядит следующим образом:
(1,"Иван",'Иванов','6'),
(2,"Петро","Петров",'4,5,1'),
(3,"Петро","Петров",'2,3');
Как мне это сделать? У меня было много попыток, вот некоторые из них:
select p.*,SUM(concat(ap.id_auto,',')) from person p inner join autoPerson ap on ap.id_person=p.id_person group by p.id_person;
select p.*,concat(ap.id_auto,',') from person p inner join autoPerson ap on ap.id_person=p.id_person group by p.id_person;
Пробовал так же создать хранимую процедуру с курсором, но там результат - происходит несколько ответов, что не комильфо. Я знаю это элементарно и типично и я раньше делал это, но сейчас вылетело из головы. Подскажите пожалуйста.
Это делается с помощью GROUP_CONCAT.
select p.*,GROUP_CONCAT(ap.id_auto) from person p inner join autoPerson ap on ap.id_person=p.id_person group by p.id_person;
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
К примеру, есть строка и целочисленная переменная:
В учебных целях нужно было самостоятельно реализовать связные списки и сделать так, чтобы был возможен обход через foreachКак я понял, нужно...
Я пытаюсь добавить в архив папку вот так (в соответствии с документацией):