是否可以创建mysql查询(按列排序考虑外来列)

时间:2013-09-30 09:06:02

标签: mysql propel

例如,我有2个表:

product:
id: integer
price: integer

variation:
id: integer
product_id: integer
price integer

有些产品有变化,有些产品没有变化。 我想得到所有产品,按价格排序。如果产品有变化,则必须按照第一个变化价格而不是自己的价格对该产品进行分类。

是否可以制作此类Propel Criteria或Query?

1 个答案:

答案 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