- я добавил размеры от себя, думал тебе пригодится
- GROUP_CONCAT собирает данные по столбцу при сортировке, и перечисляет их через разделитель (по умолчанию это запятая)
Вот тут отличное описание http://code.mu/sql/group_concat.html
- чтобы преобразовать полученную строку в массив используй explode , и дальше можешь делать с ним что хочешь.
- чтобы НЕ выводить наименование размеров где склад = 0 , нужно добавить условие в подзапрос "WHERE sklad_qty > 0"
- Если НЕ нужно выводить товары, у которых в общей сложности sklad = 0, добавь условие в основной запрос "WHERE v.sklad > 0"
В итоге запрос будет таким
SELECT
i.id, i.title,
v.sklad, v.size
FROM
items AS i
LEFT JOIN
(SELECT
SUM(`sklad_qty`) AS sklad , GROUP_CONCAT(`title`) AS size, item
FROM
`variants`
WHERE
sklad_qty > 0
GROUP BY
item
) AS v ON v.item = i.id
WHERE
v.sklad > 0
Edit: Что-то я не вникаю сразу, что ты спрашиваешь :(