Имеется следующая структура таблиц.
**Products:**
-id
-title
-price
**Equipments**
-id
-title
**Eqvalues**
-id
-equipment_id
-value
**Equipment_product_value**
-id
-product_id
-equipment_id
-value_id
Хочу вывести данные в формате.
|products.title|products.price|equipments.title-1|eqvalues.value-1|equipments.title-N|eqvalues.value-N
Простыми словами, у товара есть характеристики (equipments) и значения этих характеристик (values) которые нужно вывести. Возможно ли так сделать. Моя часть реализации:
SELECT products.id, products.title, products.status, products.price, products.info,
product_photo.filename, equipments.title AS etitle, values.value
FROM products
INNER JOIN product_photo ON products.id = product_photo.product_id
INNER JOIN equipment_product ON products.id = equipment_product.product_id
INNER JOIN equipments ON equipment_product.equipment_id = equipments.id
INNER JOIN `values` ON equipment_product.value_id = values.id
GROUP BY products.id
Похоже у вас MySQL.
В общем случае нельзя вывести в несколько столбцов каждое свойств. Вы ведь не знаете изначально сколько всего может быть строк.
Зато можно вывести все свойства товара в одном столбце с разделителем |, с помощью функции GROUP_CONCAT:
SELECT products.id, products.title, products.status, products.price, products.info,
product_photo.filename,
GROUP_CONCAT( DISTINCT
CONCAT(equipments.title, '|', values.value)
ORDER BY equipments.title
SEPARATOR '|'
) AS prodInfo
FROM products
INNER JOIN product_photo ON products.id = product_photo.product_id
INNER JOIN equipment_product ON products.id = equipment_product.product_id
INNER JOIN equipments ON equipment_product.equipment_id = equipments.id
INNER JOIN `values` ON equipment_product.value_id = values.id
GROUP BY products.id
Сборка персонального компьютера от Artline: умный выбор для современных пользователей