选择具有国家/地区例外的部分

时间:2012-03-05 11:01:18

标签: php mysql sql doctrine dql

我的查询有问题:

我有一个带有“sections”的表和另一个带有多对多的SectionCountryException的表,其中只有我不希望出现的国家/地区的值。

让我解释一下:我有很多部分,我想在某些国家/地区不提供某些部分。

现在我在Section Table中有这个dql:

$dql = $this->createQuery('se')
->leftJoin('se.SectionCountryExceptions sce')
->whereNotIn('sce.value',$countryCode)
->orderBy....

但我知道这不对,但不知道怎么做......

感谢

1 个答案:

答案 0 :(得分:0)

我自己回答......


    $dql = $this->createQuery('se')
                ->andWhereNotIn('se.id', $this->getExceptionsArray());

和功能:


    private function getExceptionsArray()
        {
            $countryCode = sfConfig::get('app_default_country_code');
            $sectionCountryExceptions = Doctrine::getTable('SectionCountryException')->findByValue($countryCode);

            $exceptions = array();
            foreach ($sectionCountryExceptions as $exception)
            {
                $exceptions[] = $exception->getSection()->getId();
            }

            return $exceptions;
        }