我尝试在一个查询中进行左连接,但似乎哪里出现了问题。
table machines
--------------
machineID
FaNo
Barcode
RoutingCode
Name
table log
-------------
logID
lineBarcode
machineBarcode
在日志表中,记录了机器和生产线的相关信息。一条生产线上可能会有许多不同类型的机器,而同一类型的机器也可能分布在不同生产线上。
机器的类型由routingCode
标识,因此我想选择一条生产线上的所有机器并进行分组。只有不同routingCode
的机器才应该单独显示,并且我想获取每种类型机器的数量。
实现方法如下:
SELECT routingcode, name, count(1)
FROM machines
JOIN log ON log.machinebarcode = machines.barcode
WHERE log.linebarcode = 100000000001
GROUP BY routingcode, name
好的,一切都运转顺利,但是这种方法只能获取与 log
表相关并且根据 linebarcode
有记录的机器。
我认为如果我使用 LEFT JOIN
连接 log 表,我将会得到所有来自 machines
表的机器,并展示它们,当然,只有在 log
表中找到的机器才会有适当的计数,但实际上不是这样。
我犯了什么错误,如何找到一个合适的解决方案?