Veröffentlicht 7. November 200420 j Hallo, ich habe folgendes, eigentlich einfaches Problem, aber komme irgendwie nicht auf die Lösung: In einer Tabelle stehen Produkte, in der anderen Kommentare. Nun möchte ich n Produkte aus der Tabelle lesen, geordnet nach der Anzahl der Kommentare. Mir ist im moment nicht ganz klar wie ich das am besten und schnellsten löse. Für einen Tipp wäre ich sehr dankbar. Viele Grüße Wapmaster
7. November 200420 j Ohne deine DB zu kennen tippe ich mal folgendes: select p.product, count(k.kommentar) as kommentare from produkttab p, kommentartab k where p.produktid = k.produktid order by kommentare
16. November 200420 j hallo Vampire, ich hab das mal probiert entsprechend umzusetzen, aber das klappt so nicht. Es geht eigentlich nur um eine einzige Tabelle, die, wo die Kommentare drinstehen. Zu jedem Kommentar ist die ProduktID gespeichert, ich möchte nun die 10 ProduktID's mit den meisten Kommentaren haben. Hab jetzt noch einmal 2 Stunden dran gesessen, komme nicht weiter. Habe es mit nem Subselect probiert, aber da bleib ich beim anwenden des Count befehls hängen.
16. November 200420 j Ich wuerde mal folgendes vorschlagen: SELECT p.Produkt FROM ProduktTable p INNER JOIN KommetarTable k ON p.ProduktID = k.ProduktID GROUP BY p.Produkt ORDER BY COUNT(k.Kommentar)[/PHP] Goos
17. November 200420 j mysql sagt, dass die Group Function falsch angewendet wird. Dankeschön aber für den Versuch... gibt es für solche fälle kleine tutorials oder ähnliches, indem das mal anschaulich erklärt wird? mir geht das irgendwie auffen senkel dass ich mir da nicht selbst helfen kann
17. November 200420 j ...und du bist dir sicher, dass du dieses theoretische Beispiel auch richtig auf deine Tabellen und Spalten uebertragen hast? Ich waer der Meinung gewesen, dass MySql das alles kann, wenns nicht gerade eine uralt Version ist. Was fuer ein Tutorial suchst du denn? Was soll genau erklaert werden? Goos
17. November 200420 j hm ich glaube schon dass ich es richtig übertragen habe. ich suche eine erklärung mit beispielen in möglichst vielen unterschiedlichen fällen für sachen wie sub selects, verzweigungen allgemein (joins halt auch und was es noch gibt). habe schon lange mit mysql gearbeitet aber so richtig tief bin ich halt nie eingestiegen. per PM würde ich auch den sql code verschicken, ich mag nur nicht dass der hier im forum steht. danke nochmal
17. November 200420 j hm ich glaube schon dass ich es richtig übertragen habe. ich suche eine erklärung mit beispielen in möglichst vielen unterschiedlichen fällen für sachen wie sub selects, verzweigungen allgemein (joins halt auch und was es noch gibt). habe schon lange mit mysql gearbeitet aber so richtig tief bin ich halt nie eingestiegen. per PM würde ich auch den sql code verschicken, ich mag nur nicht dass der hier im forum steht. danke nochmal Gute Idee, wollte ich dich auch drum gebeten haben. Meine Vorstellungskraft ist z.Z. nicht die beste... Also, bitte um Tabellencode (vielleicht mit ein bisschen Inhalt, wenns nix privates oder betriebliches ist) per PM.
18. November 200420 j also wenn ich allesrichtig versanden habe willst du nur DIE ProduktIDs mit den meisten kommentaren? Select produktid from ( Select distinct produktid, count(kommentare) from produkttabelle order by count(kommentare) ) where rownum < 11
18. November 200420 j hallo snowman, naja, ich möchte eigentlich alle spalten aus der kommentar-tabelle haben, für X Datensätze, geordnet nach der Anzahl der Datensätze zu einer ID, die ebenfalls in dieser Tabelle für jeden Datensatz gespeichert wird (und auf ein Produkt verweist). Die ID ist weder unique noch primary und verweist einfach nur auf ein Produkt in einer anderen Tabelle. Es reicht jedoch völlig, für jede Zeile in der Tabelle zu prüfen, wieviele andere Zeilen für die selbe ProduktID existieren, und das halt absteigend zu ordnen. Dann noch ein Limit auf 10 oder was auch immer, und es sollte gehen. Aber in SQL habe ich damit so meine Probleme. Zur Not würde es mir auch reichen, nur die ID von jedem Datensatz zu bekommen, also den Primary Key mit auto_increment, aber ob ich nun nur diese ID bekomme oder alle Spalten, ist doch egal oder? Ich brauche sie sowieso.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.