(08-16-2017, 06:06 AM)Kaosweaver Wrote: $this->db->select("pu.username,
pu.last_name,
pu.first_name,
pu.middle_name,
ppi.passport_number,
ps.passport_status_desc,
pmax_status_date
FROM
passport_users pu,
(select pi.username,
pi.passport_number,
max(pid.passport_status_date) pmax_status_date
from passport_information pi,
passport_information_detail pid
where pi.username = pid.username
group by pi.username,
pi.passport_number) p_max_status,
passport_information ppi,
passport_information_detail ppid,
passport_status ps
WHERE pu.username = p_max_status.username
and pu.username = ppi.username
and ppi.passport_number = p_max_status.passport_number
and ppi.passport_number = ppid.passport_number
and ppid.passport_status_date = p_max_status.pmax_status_date
and ppid.passport_status = ps.passport_status
and sysdate between ppi.passport_issue_date and NVL(ppi.passport_expiration_date, sysdate)", FALSE);
---------------------
I don't think it is embedded...
Then why when I run the query in Toad for Oracle, it works fine. It also works fine in CI, with the exception of when I try to do a footer search.
The following function is called when doing a footer search:
foreach ($this->column_search as $item) {
if ($_POST['search']['value']) {
if ($i === 0) {
$this->db->group_start();
$this->db->like('LOWER(' . $item . ')', strtolower($_POST['search']['value']));
} else {
$this->db->or_like('LOWER(' . $item . ')', strtolower($_POST['search']['value']));
}
if (count($this->column_search) - 1 == $i)
$this->db->group_end();
}
$i++;
}
And by looking at the results from last_query() when I try the footer search, the piece in red is appended. Do you see the difference?
SELECT * FROM (SELECT inner_query.*, rownum rnum FROM (SELECT pu.last_name, pu.first_name, pu.middle_name, ppi.passport_number from passport_users pu, (select pi.username, pi.passport_number, max(pid.passport_status_date) pmax_status_date
from passport_information pi, passport_information_detail pid where pi.username = pid.username group by pi.username, pi.passport_number) p_max_status, passport_information ppi, passport_information_detail ppid, passport_status ps
where pu.username = p_max_status.username
and pu.username = ppi.username
and ppi.passport_number = p_max_status.passport_number
and ppi.passport_number = ppid.passport_number
and ppid.passport_status_date = p_max_status.pmax_status_date
and ppid.passport_status = ps.passport_status
and sysdate between ppi.passport_issue_date and NVL(ppi.passport_expiration_date, sysdate)
WHERE LOWER(LAST_NAME) LIKE '%o%' ESCAPE '!'
ORDER BY "LAST_NAME" ASC
) inner_query WHERE rownum < 11)
Now if I change the red WHERE above to an AND, once again it works in Toad for Oracle.