5

1つのクエリで左結合をしようとしていますが、どこか間違っているようです。

table machines
-------------- 
machineID
FaNo
Barcode
RoutingCode
Name


table log
-------------
logID
lineBarcode
machineBarcode

ログ テーブルには、マシンとラインに関するレコードがあります。1 つのラインには、同じタイプのさまざまなマシンやマシンが多数存在する可能性があります。
マシン タイプは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 JOINmachineslogcount

4

2 に答える 2

-1

差分マシン名、つまりルーティングコードとカウントを提供します

SELECT distinct name, routingcode, count(1)
FROM machines 
JOIN log ON log.machinebarcode = machines.barcode
WHERE log.linebarcode = 100000000001
GROUP BY routingcode, name
于 2013-07-17T09:11:07.683 に答える