简体   繁体   中英

How to use union on YII

i want to upgrade from php into YII but i stuck this problem. This is code

`

select  h.Kelas_ID KelasAlias, h.Ruangan_ID RuanganAlias, j.Jadwal_ID, j.Ruangan_ID, j.Kelas_ID, c.Kelas, r.Ruangan 
From kehadiran h LEFT join jadwal j on h.Guru_ID = j.Guru_ID and h.Kelas_ID = j.Kelas_ID and h.Ruangan_ID = j.Ruangan_ID
left join kelas c on c.Kelas_ID=h.Kelas_ID 
LEFT join ruangan r on r.Ruangan_ID=h.Ruangan_ID
where h.Guru_ID = '1'
group by c.Kelas_ID, r.Ruangan_ID 
union all
SELECT  j.Kelas_ID KelasAlias, j.Ruangan_ID RuanganAlias, j.Jadwal_ID, j.Ruangan_ID, j.Kelas_ID, c.Kelas, r.Ruangan 
FROM jadwal j LEFT JOIN kelas c ON c.Kelas_ID=j.Kelas_ID 
LEFT JOIN ruangan r ON r.Ruangan_ID=j.Ruangan_ID  
WHERE j.Guru_ID = '1'
GROUP BY c.Kelas_ID, r.Ruangan_ID

`

But now how to use union in YII

You can use findAllBySql and get the resultu using the sql query you prefere

 $yourQuery = "select  h.Kelas_ID KelasAlias, h.Ruangan_ID RuanganAlias,      
     j.Jadwal_ID, j.Ruangan_ID, j.Kelas_ID, c.Kelas, r.Ruangan 
     From kehadiran h LEFT join jadwal j on h.Guru_ID = j.Guru_ID 
     and h.Kelas_ID = j.Kelas_ID and h.Ruangan_ID = j.Ruangan_ID
     left join kelas c on c.Kelas_ID=h.Kelas_ID 
     LEFT join ruangan r on r.Ruangan_ID=h.Ruangan_ID
     where h.Guru_ID = '1'
     group by c.Kelas_ID, r.Ruangan_ID 
     union all
    SELECT  j.Kelas_ID KelasAlias, j.Ruangan_ID RuanganAlias, j.Jadwal_ID,    
    j.Ruangan_ID, j.Kelas_ID, c.Kelas, r.Ruangan 
    FROM jadwal j LEFT JOIN kelas c ON c.Kelas_ID=j.Kelas_ID 
    LEFT JOIN ruangan r ON r.Ruangan_ID=j.Ruangan_ID  
    WHERE j.Guru_ID = '1'
    GROUP BY c.Kelas_ID, r.Ruangan_ID "


$results =YourModel::model()->findAllBySql( $yourQuery); 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM