首页 > 解决方案 > LEFT JOIN 每次都为空

问题描述

我需要有关如何连接表的建议,以便始终显示产品名称和编号,即使其他表的值为零。它与这个时间顺序列表有关

也许我走错了路,我应该在 PHP 中寻找解决方案。

我需要查看每天和特定时间的项目数量,以便查看可用或不可用的状态。

http://sqlfiddle.com/#!9/a343a3/6

标签: phpmysql

解决方案


where条件放入join

SELECT p.name, p.quantity, p.input as input, p.price as price, SUM(ifnull(i.quantity,0)) as count
FROM product p
LEFT JOIN order_items i ON p.id = i.product_id
LEFT JOIN orders o ON o.id = i.order_id
                  AND `o`.`date` = '2020-05-20'
                  AND `o`.`time_start` = '11:30:00'
                  AND `o`.`time_end` = '12:30:00'
GROUP BY p.name

否则你的where条款会把你left join变成一个inner join

SQLFiddle


推荐阅读