我试图从一个查询中获取数据库中的所有产品。我被卡在价格部分:从数据库中获取产品
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数据库中获取所有产品(价格),请不要介意告诉我:)
编辑:价格永远不能为null。如果孩子应该从其父母继承,它只是没有在jos_vm_product_price中的价格行
我不知道如何解决此查询。它也不使用jos_vm_product_price,这让我很难找出哪一个应该是价格表。 – MrSoundless 2010-08-05 14:43:59
对不起,它只返回儿童产品。也请阅读主帖中的编辑说明,因为我在解释中犯了一个“小”错误。 – MrSoundless 2010-08-05 15:12:50
查看我的更新。我从你之前的文章中推断出你想要的所有产品都有父母。 – RedFilter 2010-08-05 15:17:49