MySQL Count Query with Join在第二个表中按值过滤查询结果

时间:2017-12-20 23:03:18

标签: mysql

我尝试查询表并使用联接来过滤结果。表1是我从中计算的表。此查询返回216

的结果
SELECT COUNT(*)
FROM
  plate 
WHERE
plates.Status = 'Sent to Device' AND plates.PlateDeviceName = 'Magnus3' AND plates.PlateDeviceIn BETWEEN '2017-12-19 07:00:00' AND '2017-12-19 15:00:00'

我需要根据outputgroups字段中的值,通过第二个相关表PlateType对其进行过滤。表outputgroups和表格与字段plates.OutputGroupID = outputgroups.OutputGroupID相关联。这个查询是我认为我应该使用但它返回的计数为零,0。

SELECT COUNT(*)
FROM
  plates INNER JOIN outputgroups ON outputgroups.OutputGroupID = plates.OutputGroupID
WHERE
 outputgroups.PlateType = 'KBA' AND plates.status = 'Sent to Device' AND plates.PlateDeviceName = 'Magnus3' AND plates.PlateDeviceIn BETWEEN '2017-12-19 07:00:00' AND '2017-12-19 15:00:00'

它也应该返回216,因为在该时间范围内制作的所有印版都是“KBA”。板。我已经尝试了这个查询的许多不同变体,并且具有与Zero相同的结果。如果我删除日期/时间约束我得到结果但我无法验证它们是否正确,因为时间跨度超过一年且计数为~36K。我知道我必须在JOIN语法中遗漏一些我不理解的东西,并且可以使用一些帮助。

0 个答案:

没有答案