WHERE 具有多个 AND 条件按预期进行过滤,但仅使用其中之一会错误地返回所有行

问题描述 投票:0回答:1

我尝试返回表中的一些行

service

SELECT ps.post_name as post, c.cname, p.place, s.date_from,
    s.date_to, e.emp_name as employee, s.court, s.place
FROM `service` s 
INNER JOIN `employee` e ON s.empno = e.empno
INNER JOIN `posts` ps ON s.post = ps.code
INNER JOIN `court` c ON s.court = c.code
INNER JOIN `place` p ON s.place = p.code
WHERE s.court=13 AND s.place=7 AND s.date_to='0000-00-00'
ORDER BY s.post

这适用于各种值的预期结果。但是当我删除

s.court=13
s.place=7
并拥有
WHERE s.date_to='0000-00-00'
时,它会失败并显示
service
中的所有记录。我尝试了各种方法,包括内连接和左连接,但没有成功。

出了什么问题?

mysql where-clause inner-join
1个回答
0
投票

很难知道确切的问题,如果你发布一些结果的截图会更好。但是,看看您提供的内容,也许它可能与 s.date_to 列数据类型相关。尝试检查数据类型,如有必要,将其转换为日期,然后再次应用过滤子句。

© www.soinside.com 2019 - 2024. All rights reserved.