0

このクエリを生成しようとしています。

select * from jobs j inner join vacancies v on j.id = v.job_id where v.id = 2943 order by j.created_at desc limit 1

v.idクエリが正常に機能するかどうかをテストするだけです。

ジョブテーブルでそれを生成する必要がある欠員テーブルからのいくつかの条件があります。

私はそれを生成するためにケース以上のものを試みます。

これは欠員モデルからの関係です

'job' => array(self::BELONGS_TO, 'Jobs', 'job_id'),

これはJobsモデルからの関係です

'vacancies' => array(self::HAS_MANY, 'Vacancies', 'job_id'),

これは私のクエリです。

$newJobs = Jobs::model()->findAll(

                    array('with'=>array(
                            'vacancies'=>array(
                                'condition'=>'vacancies.id = 2943',
                                'order'=>'t.created_at desc',
                            )
                        ),
                    'order'=>'t.created_at desc'
                    ,'limit'=>1
                    )
                );

しかし、これはIDとして欠員からの条件なしで私に最新の仕事を与えてくれます。

Jobsモデルのいくつかのスコープでこれを試してください。

$newJobs = Jobs::model()->isOffline()->isApproved()->recent()->findAll(array(
                            'with'=>array(
                                'vacancies'=>array(
                                    'condition'=>'vacancies.id=2268'
                                )
                            )
                        )
                        );

スコープ

    public function recent($limit=1)
    {
        $this->getDbCriteria()->mergeWith(array(
            'order'=>'t.created_at DESC',
            'limit'=>$limit,
        ));
        return $this;
    }

    public function isOffline($offline = 'False')
    {
        $this->getDbCriteria()->mergeWith(array(
            'condition'=>"t.offline = '$offline' OR t.offline is null",
        ));
        return $this;
    }

    public function isApproved($approved = 'False')
    {
        $this->getDbCriteria()->mergeWith(array(
            'condition'=>"t.approved= '$approved'",
        ));
        return $this;
    }

欠員から条件なしで最新の仕事を私に与えてくれる仕事はまだありません。

誰でも私を助けることができますか?

4

1 に答える 1