Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] Unterabfragen, die NULL anstatt Wert liefern (https://www.gegen-bilderklau.net/thread.php?threadid=161114)


Geschrieben von cll am 27.08.2009 um 16:09:

  Unterabfragen, die NULL anstatt Wert liefern

Ich habe eine Topliste programmiert, die einen DB-Eintrag abruft und die Summe der Zeilen, die in anderen Tabellen dazu existieren. Das habe ich über Unterabfragen gelöst.
Blöderweise liefern die Unterabfragen NULL anstatt 0 wenn keine Zeile existiert. Und das kann er dann scheinbar nicht sortieren:


Weiß jemand wie ich das umgehen kann?



Geschrieben von Black Katrin am 27.08.2009 um 16:25:

 

müssteste da nicht der zeile angeben "Not Null" ?



Geschrieben von cll am 27.08.2009 um 16:32:

 

ne, das war nicht was ich wollte. Ich wollt nur dass die Unterabfrage mit count(id) eine Zahl zurückliefert, die liefert aber NULL wenn keine Zeile da ist. Hier mal die ganze Abfrage:

code:
1:
2:
3:
4:
5:
mysql_query("SELECT id, pferdename, 
(SELECT count(id) FROM pferde WHERE hengst=p.id GROUP BY hengst) AS gedeckte, 
(SELECT count(id) FROM fohlen WHERE vid=p.id GROUP BY vid) AS fohlen, 
(SELECT count(vid) FROM pferdeABST WHERE vid=p.id GROUP BY vid) AS ausgew 
FROM pferde p WHERE geschl='Hengst' ORDER BY gedeckte+fohlen+ausgew DESC LIMIT 10") OR DIE(mysql_error());



Geschrieben von cll am 28.08.2009 um 11:30:

 

ohne GROUP BY geht aber COUNT nicht unglücklich

das + ist da, weil ich nach der Summe der 3 Zahlen ordnen will, mit komma würde nach dem ersten, dann dem zweiten, dann dem dritten geordnet. das funktioniert auch halbwegs - nur dass er mit den NULL nicht umgehen kann

Kann ich dem nicht irgendwie klar machen dass ich eine ZAHL will? Ich hätte gedacht da der abgerufene Wert ein COUNT ist, geht das...



Geschrieben von cll am 31.08.2009 um 18:22:

 

stimmt!

ERLEDIGT


Forensoftware: Burning Board, entwickelt von WoltLab GmbH