当我运行以下查询时,它只显示 1 行。基于“created_date”条件,如果我删除“created_date”条件并仅保留“status_change_date”条件,它会显示 3 行。
我想查看在指定时间内创建或修改的所有项目。我找不到查询中的问题
`SELECT DISTINCT products.id AS product, status.id AS stat, COUNT(*) AS total FROM items INNER JOIN products ON (items.fk_product_id = products.id) INNER JOIN status ON (items.fk_status = status.id) WHERE DATE(items.status_change_date) BETWEEN '2011-04-13' AND '2011-05-13' OR DATE(items.created_date) BETWEEN '2011-04-13' AND '2011-05-13' AND status.id = 2 GROUP BY products.name, status.name order by products.name`
最佳答案
我感觉条件正在被这样评估
status_change_date or (created_date and status.id = 2)
您可以尝试使用括号来指定您的条件分组
( DATE(items.status_change_date)... OR DATE(items.created_date)... )
AND status.id = 2
关于mysql - SQL查询给出错误结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5995180/