Я пытаюсь получить все продукты из базы данных одним запросом.Я застрял в ценовой части:
У VirtueMart есть таблица с именем #__vm_product, а другая - с именем #__ vm_product_price.
Если у продукта есть родительский продукт, это означает, что продукт наследует все отparent, если для дочернего элемента не установлено другое значение.
Таблицы выглядят следующим образом:
/* #__vm_product PARTIAL */
int - product_id
int - product_parent_id
varchar - product_name
/* #__vm_product_price PARTIAL */
int - product_id
decimal - product_price
int - mdate
Я сделал следующий запрос, который получает все товары с их ценой:
SELECT
p.product_id AS id,
product_name AS name,
product_price AS price,
p.product_parent_id AS parent,
MAX(pp.mdate) AS last_updated
FROM jos_vm_product p
LEFT JOIN jos_vm_product_price pp ON p.product_id = pp.product_id
GROUP BY p.product_id
ORDER BY p.product_id
Проблема с этим запросом состоит в том, что он не проверяет, является ли их цена указанной.Так что, если это дочерний продукт и у него нет цены, он должен показывать цену своего родителя.
Может ли кто-нибудь помочь мне с этим?
Примечание: Если кто-нибудь знает более простой способполучить все продукты (с ценами) из базы данных VirtueMart, пожалуйста, не стесняйтесь сообщить мне:)
РЕДАКТИРОВАТЬ: Цена никогда не бывает нулевой.Если ребенок должен наследовать от своего родителя, у него просто нет строки цены в jos_vm_product_price