我正在尝试通过单个查询从数据库中获取所有产品。我陷入了价格部分:
VirtueMart 有一个名为#__vm_product 的表和另一个名为#__vm_product_price 的表。
如果产品有父产品,则意味着产品继承父产品的所有内容,除非在子产品中设置不同。
表格如下所示:
/* #__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 中没有价格行