我有两个连接在一起的表,名为user
和records
,结构如下。在下面的查询中,我试图获取status
= 1的小时或秒> 0的用户。运行查询时,它给我user 142
的状态为0。
查询实际上返回用户表中的两行。它应该只返回一行。即用户199
请问我的查询出了什么问题?
用户
id status
199 1
142 0
记录
user_id hours seconds
199 10 90
144 0 800
控制器
$results = array();
$results = $this->db->query("SELECT user.id, user.status, records.hours, records.seconds
from user
INNER JOIN records
ON user.id = records.user_id
WHERE user.status = 1
and records.hours
or records.seconds > 0 ");
$get_results = $results->result_array();
return $get_results;
答案 0 :(得分:1)
或条件之间的用户括号
$results = array();
$results = $this->db->query("SELECT user.id,user.status,records.hours,records.seconds
FROM user
INNER JOIN records
ON user.id = records.user_id
WHERE user.status = 1
AND (records.hours > 0 OR records.seconds > 0)");
$get_results = $results->result_array();
return $get_results;