Подскажите как вытащить данные из таблицы по условиям, который описал ниже? Есть запрос который вытаскивает id товаров:
CODE ( SQL):
скопировать код в буфер обмена
SELECT cp.`id_cart`, cp.`id_product`, cp.`id_product_attribute`, c.`id_guest`, c.`id_cart`, cp.`quantity` FROM `ps_cart_product` cp LEFT JOIN `ps_cart` c ON cp.`id_cart` = c.`id_cart` WHERE c.`id_guest` = $id
$id - id клиента чью корзину получаем. (не суть)
На выходе имеем два нужных параметра - id товаров и его количество.
Выглядеть будет так:
id_product, quantity
13, 1
22, 2
Далее в следующем запросе я вытаскиваю всю информацию о товарах, id которых получил ранее:
CODE ( SQL):
скопировать код в буфер обмена
SELECT p.`id_product`, p.`price` , l.`name` , l.`link_rewrite` , i.`id_image`, sp.`reduction_type`, sp.`reduction`, f.`value`, fp.`id_feature_value` FROM `ps_product` p LEFT JOIN `ps_product_lang` l ON l.`id_product` = p.`id_product` LEFT JOIN `ps_image` i ON i.`id_product` = p.`id_product` AND i.`cover` = '1' LEFT JOIN `ps_specific_price` sp ON sp.`id_product` = p.`id_product` LEFT JOIN `ps_feature_product` fp ON fp.`id_product` = p.`id_product` AND fp.`id_feature` = '13' LEFT JOIN `ps_feature_value_lang` f ON f.`id_feature_value` = fp.`id_feature_value` WHERE p.`id_product` IN ($product_ids_str)
Цифры - константы.(не суть)
$product_ids_str - это те самые id которые были вытащены ранее, просто я подготовил их для запроса. На выходе получим данные. Но не учитывается кол-во товаров. То есть я получу 2 строки, по одной для каждого id товара. Но нужно получить исходя из этой задачи 3 строки, так как всего 3 товара. Что нужно дописать чтобы получилось то что мне нужно?
Рассматривал вариант перебора в цикле и дублирования инфы, в зависимости от кол-ва товара.. но как-то некрасиво чтоли.(Отредактировано автором: 11 Октября, 2015 - 18:13:36)
|