例如,我有2个表:
product:
id: integer
price: integer
variation:
id: integer
product_id: integer
price integer
有些产品有变化,有些产品没有变化。 我想得到所有产品,按价格排序。如果产品有变化,则必须按照第一个变化价格而不是自己的价格对该产品进行分类。
是否可以制作此类Propel Criteria或Query?
答案 0 :(得分:2)
SELECT
*
FROM
product p
LEFT JOIN variation v ON p.id = v.product_id
ORDER BY COALESCE(v.price, p.price)
COALESCE()
返回其中第一个不是NULL
的参数。 LEFT JOIN返回产品表中的所有内容,如果变体表上没有匹配项,则为NULL
。