В общем: есть таблицы:
mark - марка автомобилей (Renault, Opel)
model - модель (Logan, Astra). Связь с маркой по полю mark_id
model_sub - модификация модели (GTI, Compressor), связь с моделью по полю model_id.
SQL запрос должен выводить строку вида:
Renault Latitude (2.0, 2.5), Renault Logan (1.4 MPi, 1.6 MPi, 1.6 16V), Renault Clio (Confort 1.6 МКП5), Renault Megane (1.4, 1.4 16v, 1.6), Renault Megane 2 (K4J, K4M, F4R), Opel Astra (CC, ASD, 4GSi, ER)
Т.е. Марка Модель (список модификаций), Марка Модел (список модификаций), ....
Выводить должен в одну строку, ибо данный запрос предполагается использовать как подзапрос в другом...
Я написал запрос, который формирует нужные данные, но в несколько строк. Т.е. он возвращает вот такое:
Renault Latitude (2.0, 2.5)
Renault Logan (1.4 MPi, 1.6 MPi, 1.6 16V)
Renault Clio (Confort 1.6 МКП5)
Renault Megane (1.4, 1.4 16v, 1.6)
Renault Megane 2 (K4J, K4M, F4R)
Opel Astra (CC, ASD, 4GSi, ER)
Запрос выглядит так:
Код: Выделить всё
SELECT
CONCAT(
mark.title, ' ',
model.title, ' (',
GROUP_CONCAT(model_sub.title SEPARATOR ', '),
')'
)
FROM
mark,
model,
model_sub
WHERE
model_sub.model_id= model.id AND
model.mark_id = mark.id
GROUP BY
model.id
Вот. Заранее спасибо.