0

例如,我有 2 个表:

product:
id: integer
price: integer

variation:
id: integer
product_id: integer
price integer

有些产品有变体,有些产品没有变体。我想得到所有产品,按价格排序。如果产品有变体,则该产品必须按第一个变体价格排序,而不是按其自身价格排序。

是否可以制作这样的 Propel Criteria 或 Query ?

4

1 回答 1

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.

于 2013-09-30T09:22:20.120 回答