[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите составить запрос и вывод mysql
Страницы: 1, 2, 3
Kusss
если немного поизучать запрос, то станет понятно :
- я добавил размеры от себя, думал тебе пригодится
- 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: Что-то я не вникаю сразу, что ты спрашиваешь :(
Цитата
И почему выводятся те товары, где нет размеров?
Потому что стоит LEFT JOIN.
Это подразумевает, что если в таблице `variants` нет записей, данные все равно выведутся.
Чтобы выводились только те товары, которые есть в обех таблицах, используй INNER JOIN
A119
Kusss
большое спасибо! Вот сейчас вроде как всё работает как надо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.