2017-11-02 13 views
0

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?

+1

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. –

+1

Ihre Abfrage stimmt nicht mit Tabellendefinitionen überein. Bitte korrigieren. – Serg

Antwort

1

Die Spaltennamen wurden gemäß Ihrer Tabellendefinition aktualisiert.

SELECT err.error_token, 
     COUNT(ord.order_id) AS total_count 
FROM error_description err 
LEFT JOIN order_error ord ON err.error_id = ord.error_id 
GROUP BY err.error_token 
Verwandte Themen