0

CarとCouponExceptionの2つの関連テーブルがあるので、モデルの配列内のすべての車を取得し、すべての車に関連するCouponExceptionsも取得したいのですが、ここで注意が必要です。クーポンを指定して、その車のCouponExceptionのみを取得したいid。だから私が今試しているのは:

$versions = Doctrine_Query::create()
    ->from('Car c, c.CouponException ce')
    ->whereIn('c.model', $models)
    ->addWhere('ce.coupon_id = ?', $cid)
    ->fetchArray();

しかし、それはクーポン例外のある車だけを返します。私が欲しいのは、モデルリスト内のすべての車を取得し、特定のクーポンIDを持つ車がある場合はその車のCouponExceptionを取得することです...

4

1 に答える 1

0

LEFT JOIN を使用してすべての結果を取得し、「with」キーワードを使用して 2 番目のテーブルをフィルター処理する必要がありました。

    $versions   = Doctrine_Query::create()
                    ->select('c.*, ce.*')
                    ->from('Car c')
                    ->leftJoin('c.CouponException ce WITH ce.coupon_id = '.$cid)
                    ->whereIn('c.model', $models)
                    ->fetchArray();

今では動作します:))))

于 2013-03-21T15:01:40.347 に答える