你可以使用
CASE
语句检查子级的产品价格,如果为空,则使用父级价格。
此外,您还需要另一个联接来获取父级。
SELECT
p.product_id AS id,
product_name AS name,
CASE
WHEN pp.product_price IS NULL then pp2.product_price
ELSE pp.product_price
END AS price,
p.product_parent_id AS parent,
MAX(pp.mdate) AS last_updated
FROM jos_vm_product p
LEFT OUTER JOIN jos_vm_product_price pp
ON p.product_id = pp.product_id
, jos_vm_product parent
, jos_vm_product_price pp2
WHERE (p.product_parent_id = parent.product_id OR p.product_parent_id IS NULL)
AND (parent.product_id = pp2.product_id OR p.product_parent_id IS NULL)
GROUP BY
p.product_id,
product_name,
CASE
WHEN pp.product_price IS NULL then pp2.product_price
ELSE pp.product_price
END,
p.product_parent_id