次のYiiモデルメソッドは、レコードごとに名前と説明の2つの値を返す必要がありますが、代わりに説明のみを返します。MySQLで直接実行すると、同じクエリが完全に機能します。Yiiは結合の1つが実行されるのを妨げていますか?
public function reportEducation(){
$criteria = array(
'select' => "
concat(person.name_first," ",person.name_last),
group_concat(person_studylevel.description)",
'join' => "
inner join person on junior = person.id
inner join person_studylevel on level = person_studylevel.id",
'group by' => 'junior'
);
return PersonEducation::model()->findAll($criteria);
}
これは私の質問です:
select
concat(person.name_first," ",person.name_last) as name,
group_concat(person_studylevel.description separator ", ")
from person_junior_education
left join person on junior = person.id
left join person_studylevel on level = person_studylevel.id
group by junior
その一部はconcat_group関数と関係があるようです。これを削除すると、説明フィールドが正しく表示されるためです。
ただし、名前フィールドは表示されません。おそらく問題は、yiiがmysql関数をどのように処理するかです。