Also ich habe diese Tabelle in meiner Datenbank
%Vor%und ich möchte zeigen, wie viele Elemente in einer Spalte Rot und in einer anderen Spalte Neu sind:
%Vor%Ich weiß, wie man sie in zwei Tabellen anzeigt, weiß aber nicht, wie man sie kombiniert.
%Vor%Dies scheint nicht zu funktionieren, da es nur Elemente zeigt, die mit Aaa gekennzeichnet sind und ich habe Schwierigkeiten zu verstehen, was ich hier falsch mache.
Dies ist ein Job für SUM(CASE)
:
Die Idee hier ist, dass Sie für alle Red
-Zeilen eine 1 zuweisen (andere erhalten eine 0) und addieren Sie diese 1 und 0, um die Anzahl zu erhalten. Dasselbe gilt für die New
-Werte.
Sie können das Gleiche auch etwas kürzer machen, indem Sie auch die boolesche 0/1-Bewertung von MySQL ausnutzen:
%Vor% In diesem Beispiel gibt Cat1 = 'Red'
eine 1 zurück, wenn sie wahr ist, und diese werden aufsummiert. Die SUM(CASE)
-Methode wird in RDBMS anders als MySQL portabler sein, wenn andere Systeme ihre Booleans anders behandeln.
Um das zu verdeutlichen, werden Sie diese in PHP als $row['Red']
und $row['New']
abrufen. Sie können die Aliase einfach auf das ändern, was Sie brauchen: AS Red
to AS CountItem
, um zu Ihrem Original zu passen ...