Mysql 在CActiveDataProvider上使用4表进行yii查询
嗨,主人,我有四张桌子 -佩加维 -佩尼莱安 -大学 -朱鲁桑 我通常使用Mysql 在CActiveDataProvider上使用4表进行yii查询,mysql,yii,cactivedataprovider,Mysql,Yii,Cactivedataprovider,嗨,主人,我有四张桌子 -佩加维 -佩尼莱安 -大学 -朱鲁桑 我通常使用 SELECT u.nama_univ, j.singkatan, peg.* FROM pegawai AS peg LEFT JOIN penilaian AS pen ON pen.no_test=peg.no_test LEFT JOIN universitas AS u ON u.id=peg.univ_s1 LEFT JOIN jurusan AS j ON j.id=peg.bidang_s1 如
SELECT u.nama_univ, j.singkatan, peg.* FROM pegawai AS peg LEFT JOIN penilaian AS pen ON pen.no_test=peg.no_test LEFT JOIN universitas AS u ON u.id=peg.univ_s1 LEFT JOIN jurusan AS j ON j.id=peg.bidang_s1
如何将此查询转换为yii
我试过这个代码,但效果不好
$dataProvider = new CActiveDataProvider('Pegawai', array(
'criteria' => array(
'select' => array(
'`pen`.*',
'`u`.`nama_univ` AS `nama_univ`',
'`j`.`singkatan` AS `singkatan`'
),
'join' => 'JOIN `Penilaian` AS `pen` ON `pen`.`no_test` = `t`.`no_test`',
'join' => 'JOIN `Universitas` AS `u` ON `u`.`id` = `t`.`no_test`',
'join' => 'JOIN `Jurusan` AS `j` ON `j`.`id` = `t`.`no_test`',
)
));
但是只有一个连接有执行做一件事你只需要像这样打印criteria对象
$dataProvider = new CActiveDataProvider('Pegawai', array(
'criteria' => array(
'select' => array(
'`pen`.*',
'`u`.`nama_univ` AS `nama_univ`',
'`j`.`singkatan` AS `singkatan`'
),
'join' => 'JOIN `Penilaian` AS `pen` ON `pen`.`no_test` = `t`.`no_test`',
'join' => 'JOIN `Universitas` AS `u` ON `u`.`id` = `t`.`no_test`',
'join' => 'JOIN `Jurusan` AS `j` ON `j`.`id` = `t`.`no_test`',
)
));
echo "<pre>";
print_r($dataProvider); //Check the object or try to post it below
exit();
您已为数组“join”的同一索引分配了3个值,因此只存储最后一个值 尝试:
你们为你们的桌子做了模型吗?是的,我做了。但是我把数组关系搞混了你试过什么?人们帮助你编写代码,他们通常不会为你编写代码。嗨,Mihai,我编辑了我的帖子。请检查一下
$dataProvider = new CActiveDataProvider('Pegawai', array(
'criteria' => array(
'select' => array(
'`pen`.*',
'`u`.`nama_univ` AS `nama_univ`',
'`j`.`singkatan` AS `singkatan`'
),
'join' => 'JOIN `Penilaian` AS `pen` ON `pen`.`no_test` = `t`.`no_test` JOIN `Universitas` AS `u` ON `u`.`id` = `t`.`no_test` JOIN `Jurusan` AS `j` ON `j`.`id` = `t`.`no_test`',
)
));