我想将此子查询更改为CodeIgniter。如何使用规则CodeIgniter进行此查询。
select *,
mahasiswa.nim AS id, (select count(id_absen)
from absen ABS
where ABS.nim = mahasiswa.nim
and tanggal >= DATE_SUB('$tgl_tutup_ujian', INTERVAL 3 MONTH) and tanggal <= '$tgl_tutup_ujian') AS jml_absen,
(select count(id_bayar) from pembayaran_iuran where ((bulan=MONTH(DATE_SUB('$tgl_tutup_ujian', INTERVAL 3 MONTH))
and tahun=YEAR(DATE_SUB('$tgl_tutup_ujian', INTERVAL 3 MONTH)))
or (bulan=MONTH(DATE_SUB('$tgl_tutup_ujian', INTERVAL 2 MONTH))
and tahun=YEAR(DATE_SUB('$tgl_tutup_ujian', INTERVAL 2 MONTH)))
or (bulan=MONTH(DATE_SUB('$tgl_tutup_ujian', INTERVAL 1 MONTH))
and tahun=YEAR(DATE_SUB('$tgl_tutup_ujian', INTERVAL 1 MONTH))))
AND pembayaran_iuran.nim = mahasiswa.nim)
AS jml_bayar from mahasiswa
left join pendaftaran_ukt on pendaftaran_ukt.nim = mahasiswa.nim
where nama like '$nama'
我尝试这样但不起作用。
$this->db->select('select *,mahasiswa.nim AS id, (select count(id_absen)');
$this->db->from('absen ABS');
$this->db->where('ABS.nim = mahasiswa.nim
and tanggal >= DATE_SUB('$tgl_tutup_ujian', INTERVAL 3 MONTH) and tanggal <= '$tgl_tutup_ujian') AS jml_absen');
$this->db->select(' (select count(id_bayar)');
$this->db->from('pembayaran_iuran');
$this->db->where('((bulan=MONTH(DATE_SUB('$tgl_tutup_ujian', INTERVAL 3 MONTH))
and tahun=YEAR(DATE_SUB('$tgl_tutup_ujian', INTERVAL 3 MONTH)))
or (bulan=MONTH(DATE_SUB('$tgl_tutup_ujian', INTERVAL 2 MONTH))
and tahun=YEAR(DATE_SUB('$tgl_tutup_ujian', INTERVAL 2 MONTH)))
or (bulan=MONTH(DATE_SUB('$tgl_tutup_ujian', INTERVAL 1 MONTH))
and tahun=YEAR(DATE_SUB('$tgl_tutup_ujian', INTERVAL 1 MONTH))))
AND pembayaran_iuran.nim = mahasiswa.nim)
AS jml_bayar from mahasiswa ');
$this->db->join('pendaftaran_ukt','pendaftaran_ukt.nim = mahasiswa.nim','left');
$this->db->order_by('id_ukt','asc');
$this->db->limit($limit, $offset);
我做错了什么?
答案 0 :(得分:0)
CodeIgniter db
库不支持子查询操作,您可以通过$this->db->query()
管理查询操作。
PS:你也可以安装子查询操作库, Sub query library
查看更多详情Click here