我正在尝试在一个查询中进行左连接,但似乎我在某个地方错了。
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
日志表我将从中获取所有机器machines
表格并显示它们,当然只有在以下位置找到的机器log
表将有适当的count
, 但不是。
我在哪里出错以及如何找到合适的解决方法?
你需要设置条件log
进入on
条款不是where
。左外连接保留的非匹配行将为所有列进行空扩展log
.
行与NULL
for log.linebarcode
如果条件符合,将再次删除where
.
也可以代替COUNT(1)
你需要计算一列log
那不会是NULL
SELECT routingcode,
name,
count(log.linebarcode)
FROM machines
LEFT JOIN log
ON log.machinebarcode = machines.barcode
AND log.linebarcode = 100000000001
GROUP BY routingcode,
name
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)