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 に答える