如何在不使用RAW的情况下在codeigniter中执行此查询:
SELECT `accounts`.`id`, `accounts`.`username`, `membs_authority`.`authority`, `membs_info`.`created_at`, `membs_info`.`confirmed`, `membs_hashes`.`sha256`, `membs_hashes`.`scrypt`, `membs_hashes`.`x11`
FROM `accounts`
INNER JOIN `membs_authority`
ON `membs_authority`.`won` = `accounts`.`secret`
INNER JOIN `membs_info`
ON `membs_info`.`id` = `accounts`.`id`
INNER JOIN `membs_hashes`
ON `membs_hashes`.`id` = `accounts`.`id`
WHERE
(`membs_info`.`confirmed` = 1
AND (
`membs_authority`.`authority` = 1 OR `membs_authority`.`authority` = 9
)
)
AND (
`membs_hashes`.`sha256` >0 OR `membs_hashes`.`scrypt` >0 OR `membs_hashes`.`x11` >0
)
这里重要的是“WHERE”的结构
答案 0 :(得分:1)
正如Vickel已经建议你在文档中可以很容易地找到这些信息,但另一方面如果你真的没有线索,如果你看到如何做到这一点可能会有所帮助 - 所以试试以下
$query = $this->db
->select('a.id, a.username, ma.authority, mi.created_at, mi.confirmed, mh.sha256, mh.scrypt, mh.x11')
->from('accounts a')
->join('membs_authority ma', 'ma.won = a.secret','inner')
->join('membs_info mi', 'mi.id = a.id','inner')
->join('membs_hashes` mh', 'mh.id = a.id','inner')
->group_start()
->where('mi.confirmed', 1)
->group_start()
->where('ma.authority', 1)
->or_where('ma.authority', 9)
->group_end()
->group_end()
->group_start()
->where('mh.sha256 >',0)
->or_where('mh.scrypt >', 0)
->or_where('mh.x11 >', 0)
->group_end()
->get();