count() in Join

SQL, Dateimanagement - Sprachunabhängige Datenhaltung
Antworten
Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

count() in Join

Beitrag von naums » Do Dez 08, 2011 7:23 pm

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
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: count() in Join

Beitrag von cloidnerux » Do Dez 08, 2011 7:52 pm

Müsste egt um die Abfrage der Entsprechende Spalte:
http://sql.1keydata.com/de/sql-count.php?
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: count() in Join

Beitrag von naums » Do Dez 08, 2011 8:03 pm

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.
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: count() in Join

Beitrag von Dirty Oerti » Do Dez 08, 2011 11:52 pm

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.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: count() in Join

Beitrag von naums » Sa Dez 10, 2011 9:34 am

schlechtes Design würde ich nicht sagen, sondern vielmehr komplizierte Daten.

Ich les mich mal in Group By ein.
.globl truth
truth:
mov r0, #42
mov pc, lr

Antworten