angenommen, wir haben die nach der ERROR_DESCRIPTION Tabelle:die Anzahl der Datensätze auswählen, die nicht mit denen in der rechten Tabelle entspricht
+----------+-------------+
| error_id | error_token |
+----------+-------------+
| 1 | error_1 |
+----------+-------------+
| 2 | error_2 |
+----------+-------------+
| 3 | error_3 |
+----------+-------------+
| 4 | error_4 |
+----------+-------------+
| 5 | error_5 |
+----------+-------------+
| 6 | error_6 |
+----------+-------------+
und die orders_error Tabelle:
+----------+----------+
| order_id | error_id |
+----------+----------+
| 1 | 1 |
+----------+----------+
| 2 | 1 |
+----------+----------+
| 3 | 2 |
+----------+----------+
| 4 | 3 |
+----------+----------+
| 5 | 1 |
+----------+----------+
| 6 | 1 |
+----------+----------+
| 7 | 2 |
+----------+----------+
| 8 | 2 |
+----------+----------+
| 9 | 3 |
+----------+----------+
| 10 | 4 |
+----------+----------+
Es ist erforderlich, die Gesamtzahl der Vorkommen für jeden Fehler einschließlich der, die nie passiert. das Ergebnis sollte wie sein:
+-------------+-------------+
| error_token | total_count |
+-------------+-------------+
| error_1 | 4 |
+-------------+-------------+
| error_2 | 3 |
+-------------+-------------+
| error_3 | 2 |
+-------------+-------------+
| error_4 | 1 |
+-------------+-------------+
| error_5 | 0 |
+-------------+-------------+
| error_6 | 0 |
+-------------+-------------+
Ich bin useing eine Abfrage wie:
SELECT err.token,
COUNT(ord.order_id)
FROM error_description err
LEFT JOIN order_error ord ON (err.error_id = ord.error_id)
GROUP BY err.token
;
, aber ich habe nur das Auftreten der Fehler, die nur geschehen (error_1 bis error_4).
Ich brauche die Fehler, die nie passiert sind?
Ihre Abfrage sollte funktionieren. Beachten Sie, dass die Spalten in Ihrer Abfrage nicht mit den Spalten in Ihren Daten übereinstimmen. Daher vermute ich, dass dies vereinfacht ist. –
Ihre Abfrage stimmt nicht mit Tabellendefinitionen überein. Bitte korrigieren. – Serg