例如我有 2 个表:
product:
id: integer
price: integer
variation:
id: integer
product_id: integer
price integer
有些产品有变体,有些产品没有变体。 我想要获取所有产品,按价格排序。如果产品有变体,则该产品必须按第一个变体价格排序,而不是其本身的价格。
是否可以制定这样的 Propel Criteria 或 Query ?
最佳答案
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
。
关于mysql - 是否可以创建 mysql 查询(考虑外来列按列排序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19090294/