mysql query problem when using cjuiautocomplete

dear Yii master,

I’m having a problem with mysql query, this query shall give result of people list, even though those people aren’t active anymore as employees…

But when some of them still active as employees, this query will also give results of the position of those people.

Well here is my code




$qtxt = "select * from

                (select t.id, t.nama, t.gender, t.alamat, t.tempat_lahir, t.tgl_lahir, t.pendidikan_terakhir, t.no_hp, t.username, t.authority

                 from r_ms_perangkat_desa t where nama like '%$name%' ) per left join

                (select t.id, t.nama, t.gender, t.alamat, t.tempat_lahir, t.tgl_lahir, t.pendidikan_terakhir, t.no_hp, t.username, t.authority

                , j.id as j_id, j.nomor as nomor, j.tgl_keputusan as tgl_keputusan, j.nrpd

                , j.ms_keputusan_oleh_id as ms_keputusan_oleh_id, ko.kode as ko_kode

                , j.tgl_pelantikan_jabatan as tgl_pelantikan_jabatan, j.tgl_habis_jabatan as tgl_habis_jabatan, j.masa_jabatan_ke as masa_jabatan_ke

                , j.ms_jabatan_id as ms_jabatan_id, mj.kode as mj_kode

                , j.ms_sotk_desa_id as ms_sotk_desa_id, sotk.kode as sotk_kode

                , j.ms_kecamatan_id as ms_kecamatan_id, k.kode_desa as k_kode

                , j.ms_desa_id as ms_desa_id, d.kode_desa as d_kode

                , j.ms_dasar_pengangkatan_id as ms_dasar_pengangkatan_id, j.aktif as j_aktif, j.keterangan

                 from r_ms_perangkat_desa t

                 inner join r_jabatan j on j.ms_perangkat_desa_id = t.id

                 inner join r_ms_desa k on j.ms_kecamatan_id = k.id

                 inner join r_ms_desa d on j.ms_desa_id = d.id

                 inner join r_ms_sotk_desa sotk on j.ms_sotk_desa_id = sotk.id

                 inner join r_ms_dasar_pengangkatan dp on j.ms_dasar_pengangkatan_id = dp.id

                 inner join r_ms_keputusan_oleh ko on j.ms_keputusan_oleh_id = ko.id

                 inner join r_ms_jabatan mj on j.ms_jabatan_id = mj.id

                where t.nama like '%$name%' and j.aktif = 1) jab on per.id = jab.id

                group by per.id limit 5";

            $command = Yii::app()->db->createCommand($qtxt);

            $result = $command->queryAll();



this query works fine and gives the result I wanted when I executed it in mysql-workbench, but not if I execute it using my Yii application.

The problem is it only gives result of this query




"select t.id, t.nama, t.gender, t.alamat, t.tempat_lahir, t.tgl_lahir, t.pendidikan_terakhir, t.no_hp, t.username, t.authority

                , j.id as j_id, j.nomor as nomor, j.tgl_keputusan as tgl_keputusan, j.nrpd

                , j.ms_keputusan_oleh_id as ms_keputusan_oleh_id, ko.kode as ko_kode

                , j.tgl_pelantikan_jabatan as tgl_pelantikan_jabatan, j.tgl_habis_jabatan as tgl_habis_jabatan, j.masa_jabatan_ke as masa_jabatan_ke

                , j.ms_jabatan_id as ms_jabatan_id, mj.kode as mj_kode

                , j.ms_sotk_desa_id as ms_sotk_desa_id, sotk.kode as sotk_kode

                , j.ms_kecamatan_id as ms_kecamatan_id, k.kode_desa as k_kode

                , j.ms_desa_id as ms_desa_id, d.kode_desa as d_kode

                , j.ms_dasar_pengangkatan_id as ms_dasar_pengangkatan_id, j.aktif as j_aktif, j.keterangan

                 from r_ms_perangkat_desa t

                 inner join r_jabatan j on j.ms_perangkat_desa_id = t.id

                 inner join r_ms_desa k on j.ms_kecamatan_id = k.id

                 inner join r_ms_desa d on j.ms_desa_id = d.id

                 inner join r_ms_sotk_desa sotk on j.ms_sotk_desa_id = sotk.id

                 inner join r_ms_dasar_pengangkatan dp on j.ms_dasar_pengangkatan_id = dp.id

                 inner join r_ms_keputusan_oleh ko on j.ms_keputusan_oleh_id = ko.id

                 inner join r_ms_jabatan mj on j.ms_jabatan_id = mj.id

                where t.nama like '%$name%' and j.aktif = 1"



but not this one




"select t.id, t.nama, t.gender, t.alamat, t.tempat_lahir, t.tgl_lahir, t.pendidikan_terakhir, t.no_hp, t.username, t.authority

                 from r_ms_perangkat_desa t where nama like '%$name%'"



anyone, please help me with this query, what can I do in order to get the result I wanted… :)

thank you very much…

*I’m sorry for my bad English

That’s expected when you inner join r_ms_perangkat_desa with the rest.

(left or right join are both variants of outer join)

/Tommy

Dear Tommy,

Thanks for your response, but honestly I don’t really get what you mean.

But somehow your answer gave me some idea on modifying my query, and it works. :D

Well here is my query now…




"select t.id, t.nama, t.gender, t.alamat, t.tempat_lahir, t.tgl_lahir, t.pendidikan_terakhir, t.no_hp, t.username, t.authority

                , j.id as j_id, j.nomor as nomor, j.tgl_keputusan as tgl_keputusan, j.nrpd

                , j.ms_keputusan_oleh_id as ms_keputusan_oleh_id, ko.kode as ko_kode

                , j.tgl_pelantikan_jabatan as tgl_pelantikan_jabatan, j.tgl_habis_jabatan as tgl_habis_jabatan, j.masa_jabatan_ke as masa_jabatan_ke

                , j.ms_jabatan_id as ms_jabatan_id, mj.kode as mj_kode

                , j.ms_sotk_desa_id as ms_sotk_desa_id, sotk.kode as sotk_kode

                , j.ms_kecamatan_id as ms_kecamatan_id, k.kode_desa as k_kode

                , j.ms_desa_id as ms_desa_id, d.kode_desa as d_kode

                , j.ms_dasar_pengangkatan_id as ms_dasar_pengangkatan_id, j.aktif as j_aktif, j.keterangan

                 from r_ms_perangkat_desa t

                 left join r_jabatan j on (j.ms_perangkat_desa_id = t.id and j.aktif = 1)

                 left join r_ms_desa k on j.ms_kecamatan_id = k.id

                 left join r_ms_desa d on j.ms_desa_id = d.id

                 left join r_ms_sotk_desa sotk on j.ms_sotk_desa_id = sotk.id

                 left join r_ms_dasar_pengangkatan dp on j.ms_dasar_pengangkatan_id = dp.id

                 left join r_ms_keputusan_oleh ko on j.ms_keputusan_oleh_id = ko.id

                 left join r_ms_jabatan mj on j.ms_jabatan_id = mj.id

                where t.nama like '%$name%' limit 5";



Can u tell me how to work with a query? Now i am just connecting to a db and displaying the whole table content. Now i want to run a query and display the result alone. where i have to add the query

pls help me

I’m sorry for my late reply, I was busy lately that I just have the chance to login to this forum :)

well, perhaps you can use this if I’m not miss understood about what you want…




$command = Yii::app()->db->createCommand($your_query);

$result = $command->queryAll();

foreach ($result as $row) {

echo $row['your column names'];

}



Thank you… Anyway i have worked on my project without query… But query running will be easy later during my project and gives a simplified look…

thanks again