@Urukhayy

Как сформировать такой запрос?

Есть две таблицы, общий ключ - ID.
В первой таблице всего одна строчка может иметь определенное значение ID.
Во второй таблице n-ое количество строчек имеют ID, соответствующей записи из первой таблицы.

Надо извлечь всё из первой, а также все значения поля name из второй, где ID = ID в первой. Но нюанс в том, что все результаты должны быть в одной строке.
  • Вопрос задан
  • 2175 просмотров
Решения вопроса 1
select t1.*, group_concat( t2.name ) all_names
from table1 t1
inner join table2 t2 using (ID)
group by t1.ID

где t1 это таблица с одной записью
t2 где много, там где Ваши name
в результате получите одну строку, а в all_names все name через запятую

p.s. имейте ввиду что существует ограничение для group_concat
MySQL and GROUP_CONCAT() maximum length
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Я имел ввиду в одной строке не в виде строки, а в одной mysql строке, но каждый name в своей ячейке), просто вместо двумерного массива будет обычный.
Это называется транспонирование. В mysql - только с большим геморроем, подготовкой нужной структуры у исходной таблицы итд. Подробнее stackoverflow.com/questions/7674786/mysql-pivot-table
en.wikibooks.org/wiki/MySQL/Pivot_table

Но я бы на вашем месте просто сделал select * если данных не очень много и собрал структуру в вашем языке программирования.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы