I use oracle 11g and I don't know why my query return different result when I use SQL/PLUS and when I use PHP
<?php
$conn=oci_connect('system','3636','orcl');
$stid = oci_parse($conn,
"SELECT num_chb
FROM chambre
WHERE num_chb NOT IN
(SELECT DISTINCT r.num_chb
FROM chambre c,
reservation r
WHERE (TO_DATE('2015-12-13','YYYY-MM-DD') NOT BETWEEN r.dat_arriv AND r.dat_depart)
AND (TO_DATE('2015-12-14','YYYY-MM-DD') NOT BETWEEN r.dat_arriv AND r.dat_depart)");
oci_execute($stid);
$tab=array();
while ($row = oci_fetch_assoc($stid)) {
$tab[]=$row['NUM_CHB'];
}
print_r($tab);
}
?>
SQL PLUS AND PHP RESULT
I'm seeing different queries:
PHP:
SELECT num_chb
FROM chambre
WHERE num_chb NOT IN
(SELECT DISTINCT r.num_chb
FROM chambre c,
reservation r
WHERE (TO_DATE('2015-12-13','YYYY-MM-DD') NOT BETWEEN r.dat_arriv AND r.dat_depart)
AND (TO_DATE('2015-12-14','YYYY-MM-DD') NOT BETWEEN r.dat_arriv AND r.dat_depart)
Oracle:
SELECT num_chb
FROM chambre
WHERE num_chb NOT IN
(SELECT DISTINCT r.num_chb
FROM chambre c,
reservation r
WHERE (TO_DATE('2015-12-13','YYYY-MM-DD') NOT BETWEEN r.dat_arriv AND r.dat_depart)
AND (TO_DATE('2015-12-14','YYYY-MM-DD') NOT BETWEEN r.dat_arriv AND r.dat_depart)
AND (r.dat_arriv TO_DATE('2015-12-13','YYYY-MM-DD') NOT BETWEEN AND TO_DATE('2015-12-14','YYYY-MM-DD'))
AND (r.dat_depart NOT BETWEEN TO_DATE('2015-12-14','YYYY-MM-DD') TO_DATE('2015-12-14','YYYY-MM-DD'))
PD:I cannot comment.
Check again!
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.