0

有两个相关的表,Car 和 CouponException,我想获得一系列模型中的所有汽车,并获得与每辆汽车相关的 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”关键字过滤第二个表。

    $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 回答