DataFox
Erfahrenes Mitglied
Hi SQL-Freaks
Ich habe folgendes Problem:
In einer Tabelle mytable befinden sich viele Datensätze. Sagen wir mal es sind Lieder die zu einer CD gehören (stark vereinfachtes Beispiel).
Es gibt folgende Felder: id, titel, groupCode
Das dumme daran: man kann nur an hand des groupCodes feststellen welche Lieder auf eine CD gehören.
Ich selecte ein Lied und möchte als nette Nebeninformation mit angeben wieviele andere Lieder es noch zu dieser CD gibt. Also: Wieviele andere Lieder es noch gibt, die den gleichen groupCode haben.
Nur dummer weise liefert mir eine Abfrage nach diesem schema:
nicht die Anzahl der Lieder, sondern die Anzahl der lieder hoch 2. Also potenziert. Glaube das nennt man auch "kartesisches Produkt". MySQL verknüpft jeden Datensatz mit dem groupCode mit jedem anderen und zählt das.
Hoffe ihr versteht worauf ich hinaus will... ich kriege es nicht gebacken MySQL dazu zu bringen mir einfach nur die Anzahl der Lieder raus zu geben. Einen Extra-Query wollte ich mir eigentlich sparen...
Habt ihr einen Tipp?
Gruß
Laura
Ich habe folgendes Problem:
In einer Tabelle mytable befinden sich viele Datensätze. Sagen wir mal es sind Lieder die zu einer CD gehören (stark vereinfachtes Beispiel).
Es gibt folgende Felder: id, titel, groupCode
Das dumme daran: man kann nur an hand des groupCodes feststellen welche Lieder auf eine CD gehören.
Ich selecte ein Lied und möchte als nette Nebeninformation mit angeben wieviele andere Lieder es noch zu dieser CD gibt. Also: Wieviele andere Lieder es noch gibt, die den gleichen groupCode haben.
Nur dummer weise liefert mir eine Abfrage nach diesem schema:
Code:
SELECT x.id, x.titel, COUNT(x.id) AS lieder FROM mytable AS x
RIGHT OUTER JOIN mytable AS x2 ON x2.groupCode=x.groupCode
WHERE x.groupCode = 'xGhJk63f'
GROUP BY x2.groupCode
LIMIT 0,1
nicht die Anzahl der Lieder, sondern die Anzahl der lieder hoch 2. Also potenziert. Glaube das nennt man auch "kartesisches Produkt". MySQL verknüpft jeden Datensatz mit dem groupCode mit jedem anderen und zählt das.
Hoffe ihr versteht worauf ich hinaus will... ich kriege es nicht gebacken MySQL dazu zu bringen mir einfach nur die Anzahl der Lieder raus zu geben. Einen Extra-Query wollte ich mir eigentlich sparen...
Habt ihr einen Tipp?
Gruß
Laura
Zuletzt bearbeitet: