Xairro.com

Mehrere COUNT() in einer Abfrage

  • Konsti
  • Avatar
  • Oct. 31, 2007, 7:13 p.m.

So, dann checke ich mal das neue Xairro ab und nerve gleich mal mit meiner Frage:

Weshalb gibt mir diese Abfrage bei diesen Tabellen immer nur 0 aus?

Tabellen:

tabelle_a tabelle_b

id_a | spalte_a  id_b | spalte_b
-----|---------  -----|-----------
1    | wert_a    1    | wert_x
2    | wert_x    2    | wert_y
3    | wert_a    3    | wert_b

Tabellen c und d ähnlich.

Abfrage: SELECT COUNT(a.id_a) AS abfrage_a, COUNT(b.id_b) AS abfrage_b, COUNT(c.id_c) AS abfrage_c, COUNT(d.id_d) AS abfrage_d FROM tabelle_a a, tabelle_b b, tabelle_c c, tabelle_d d WHERE a.spalte_a = 'wert_a' AND b.spalte_b = 'wert_b' AND c.spalte_c = 'wert_c' AND d.spalte_d = 'wert_d'

Gewünschtes Ergebnis:

abfrage_a | abfrage_b | abfrage_c | abfrage_d
----------|-----------|-----------|----------
2         | 1         | 3         | 2

Echtes Ergebnis:

abfrage_a | abfrage_b | abfrage_c | abfrage_d
----------|-----------|-----------|----------
0         | 0         | 0         | 0

Natürlich, ich könnte alles einzeln abfragen aber das ist mir zuviel Script und zu primitiv...

Konsti


Schokolade?!

Rating: 0 Permalink
  • Avatar
  • Oct. 31, 2007, 7:45 p.m.

Hast aber nen schoenes Rating Konsti :P

Rating: 0 Permalink
  • Konsti
  • Avatar
  • Nov. 15, 2007, 7:52 p.m.

So, ich habe jetzt eine Lösung bekommen (auf redio.de) und möchte sie euch hier reinstellen.

godguild hat das hier geschrieben: Da Count(*) ja immer ein Ergebnis zurückliefert, nämlich einen Wert erwartest du quasi eine "Zeile" sprich einen Record für alle Abfragen, daher ist es sinnvoll dies in Sub-Selects zu packen. Ein weiterführendes FROM in der Hauptselect Anweisung braucht nicht mit angegeben zu werden, dem SELECT würde ja auch ein "SELECT 1 as Eins" genügen um eine Row mit einer 1 zu retournieren

Code:

$sql= "SELECT (SELECT COUNT(a.id_a) FROM tabelle_a a WHERE a.spalte_a = 'wert_a') as erg_a, (SELECT COUNT(b.id_b) FROM tabelle_b b WHERE b.spalte_b = 'wert_b') as erg_b";

Schokolade?!

Rating: 0 Permalink