Próbuję połączyć w lewo w jedno zapytanie, ale wydaje mi się, że gdzieś się mylę.Serwer SQL pozostały przyłączaniu się
table machines
--------------
machineID
FaNo
Barcode
RoutingCode
Name
table log
-------------
logID
lineBarcode
machineBarcode
W tabeli dziennika znajdują się zapisy na maszynach i liniach. W jednej linii może być wiele różnych maszyn i maszyn tego samego typu.
Typ urządzenia to routingCode
, więc jestem zainteresowany wyborem wszystkich maszyn w linii i pogrupowaniem ich. Tylko maszyny o innym numerze routingCode
powinny być wyświetlane osobno, a ja chcę uzyskać liczbę maszyn każdego typu.
Dokonuje się tego w ten sposób.
SELECT routingcode, name, count(1)
FROM machines
JOIN log ON log.machinebarcode = machines.barcode
WHERE log.linebarcode = 100000000001
GROUP BY routingcode, name
Ok wszystko przebiega gładko, ale w ten sposób uzyskać tylko maszyny, które są związane w log
tabeli i mają zapis według linebarcode
.
Myślałem, że jeśli I LEFT JOIN
tabeli dziennika otrzymam wszystkie maszyny z tabeli machines
i wyświetlić je i oczywiście tylko maszyny, które znajdują się w tabeli będą miały właściwe count
, ale nie.
Gdzie się mylę i jak znaleźć odpowiednie obejście?
Dziękujemy! Nie wiedziałem, że mogę postawić wiele warunków na złączeniu. :) –