Seite 1 von 1

count() in Join

Verfasst: Do Dez 08, 2011 7:23 pm
von naums
Hallihallöchen,

ist es möglich mehrere Datensätze auszugeben, und für jeden Datensatz in einer andren Tabelle die Einträge zu zählen?

MySQL Befehl:

Code: Alles auswählen

SELECT game.id, game.name, game.usk, game.releasedate, game.publisher, game.developer, game_lang.w_all, count(game_pict.game_id) as PicNum FROM `game` JOIN `game_lang` ON game_lang.game_id=game.id JOIN game_pict ON game_pict.game_id=game.id WHERE `game_pict`.game_id=game.id
Ich will für das game mit der ID 1 die Anzahl bilder; für das mit der ID 2 die Anzahl der Bilder, etc. Zurzeit gibt er nur id=1 aus und zähle ALLE Einträge aus game_pict

Kann mir wer helfen?

Mfg Naums

Re: count() in Join

Verfasst: Do Dez 08, 2011 7:52 pm
von cloidnerux
Müsste egt um die Abfrage der Entsprechende Spalte:
http://sql.1keydata.com/de/sql-count.php?

Re: count() in Join

Verfasst: Do Dez 08, 2011 8:03 pm
von naums

Code: Alles auswählen

SELECT game.id, game.name, game.usk, game.releasedate, game.publisher, game.developer, game_lang.w_all, count(DISTINCT game_pict.game_id) as PicNum FROM `game` JOIN `game_lang` ON game_lang.game_id=game.id JOIN game_pict ON game_pict.game_id=game.id ORDER BY `name` ASC
Jetzt bringt er zwar (weil ich game_pict.game_id jetzt zähle) die korrekte Anzahl der Bilder, aber immernoch nur einen Datensatz der Tabelle game. Ja, es gibt mehr datensätze.

Re: count() in Join

Verfasst: Do Dez 08, 2011 11:52 pm
von Dirty Oerti
Mhm ...

Ich weiß jetzt natürlich nicht genau, wie deine Daten hier zusammenhängen.
Aber es sieht für mich trotzdem stark nach einem schlechtem Design aus?!?
Funktionale Abhängigkeiten? Mehrwertige Abhängigkeiten?

Ansonsten fällt mir - so wie ich deine Anforderung jetzt verstanden habe - nur GROUP BY in Verbindung mit count(*) ein.

Re: count() in Join

Verfasst: Sa Dez 10, 2011 9:34 am
von naums
schlechtes Design würde ich nicht sagen, sondern vielmehr komplizierte Daten.

Ich les mich mal in Group By ein.