hi…
was ist mit „IN“ … kann man das nicht benutzen?
mysql> SELECT * FROM myTable WHERE Rufnummer IN
(‚Sprechstelle1‘, ‚Sprechstelle2‘);
irgendwie so? funzt bei mir nur nich richtig… hmm…
IN ist im Beispiel oben nur kurz für (Rufnummer=‚Sprechstelle1‘) OR (Rufnummer=‚Sprechstelle1‘), das wird so nix, das liefert alle Zeilen, bei denen Rufnummer gleich Sprechstelle1 oder Sprechstelle2 ist.
WHERE filtert grundsätzlich immer eine Zeile, d.h. entweder entspricht die der Bedingung ung wird angezeigt, oder nicht.
Du willst jetzt ja aber Angaben aus 2 Zeilen kombinieren, deswegen in meinem Posting oben das JOIN mit sich selbst, d.h. erstmal wird jeder Datensatz der ersten Tabelle mit jedem Datensatz der 2. Tabelle zu einer Riesentabelle mit Anzahl^2 Zeilen verbunden, und danach per WHERE die passenden Zeilen rausgefiltert (gleiche Nummer, verschiedene Sprechstellen; ganz so schlimm ist’s in Wirklichkeit nicht, mySQL wertet die Bedingung eher aus, daher gehts schneller). Kannst du ja einfach mal mit einer kleinen Tabelle ohne WHERE probieren, wie das geht…
Neben JOIN gibt es noch die Möglichkeit, nach verschiedenen Eigenschaften zu gruppieren und dann mit HAVING für diese Gruppen zusätzliche Bedinungen einzuführen, allerdings klappt das im angeführten Beispiel nicht. Möglich wäre damit zum Beispiel, die Anzahl der Anrufe pro Sprechstelle auszugeben:
SELECT Sprechstelle, count(Rufnummer) FROM tabelle GROUP BY Sprechstelle
oder auch nur die, wo mehr als 10 Anrufe waren:
SELECT Sprechstelle, count(Rufnummer) FROM tabelle GROUP BY Sprechstelle HAVING count(Rufnummer)>10
http://little-idiot.de/mysql/ (Kapitel 28) ist wahrscheinlich schon zu umfangreich für dich, aber lesenswert…
Alexander