sehr komplizierte SQL Abfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • sehr komplizierte SQL Abfrage

    Hi zusammen,

    ich habe eine SQL Tabelle in der mehrere Bilder zu einer eindeutigen ID zugeordent werden.

    also z.B.

    DS1 -> user=tester1, Bild=bild1, time=bla
    DS2 -> user=tester1, Bild=bild2, time=blabla
    DS3 -> user=tester2, Bild=bild1, time=blablabla
    DS3 -> user=tester3, Bild=bild1, time=blablablabla


    ...nun zu meinem Problem:

    ich möchte auf der startseite nur 3 Bilder pro User anzeigen und die geordnet nach zeit(time)

    wer kann mir bitte helfen???

  • #2
    Was sind deine Ansätze? Was sind deine Probleme? Was kommt raus?

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      Was sind deine Ansätze? Was sind deine Probleme? Was kommt raus?
      das Problem is das ich dans ganze nich in PHP oder so programmieren möchte sondern einfach nur ne SQL Abfrage dafür brauche (wenn das geht)

      ich hab das schon mit Limit und Group und so versucht da kommt aber nur blödsinn raus...

      Kommentar


      • #4
        Dann zeig deine Query.

        Kommentar


        • #5
          Original geschrieben von pekka
          Dann zeig deine Query.

          wenn das was bringen würde könnte ich das ja posten aber das is wie gesagt nur Minus weil ich keine Ahnung hab, sonst würd ich den Beitrag hier auch nich reinsetzen.

          Kommentar


          • #6
            Zeig deine Query, und wir helfen sie dir verbessern.

            Kommentar


            • #7
              SELECT * FROM tabelle WHERE benutzer = '$benutzer' ORDER BY time DESC LIMIT 0,3

              müßte helfen.

              Kommentar


              • #8
                @pekka: lang(weilig)e nacht gehabt?

                Kommentar


                • #9
                  Japp, schlaflos, gelangweilt und deshalb seeehr hilfsbereit

                  Kommentar


                  • #10
                    Original geschrieben von pekka
                    SELECT * FROM tabelle WHERE benutzer = '$benutzer' ORDER BY time DESC LIMIT 0,3

                    müßte helfen.
                    das hilft nicht so ganz..., ich will ja von jedem User nur maximal 3 Bilder beispielsweise anzeigen und insgesammt 50 Bilder

                    Kommentar


                    • #11
                      Arrrghh. Dann sag das bitte ein bisschen deutlicher.

                      Das übersteigt meine SQL-Kenntnisse.... Vielleicht mit Subselects? Keine Ahnung. Falls nicht gerade einer der SQL-Götter in diesem Thread vorbeikommt: Warum nicht mit PHP?

                      Kommentar


                      • #12
                        Original geschrieben von pekka
                        Arrrghh. Dann sag das bitte ein bisschen deutlicher.

                        Das übersteigt meine SQL-Kenntnisse.... Vielleicht mit Subselects? Keine Ahnung. Falls nicht gerade einer der SQL-Götter in diesem Thread vorbeikommt: Warum nicht mit PHP?

                        weil die datenbank sehr groß werden kann und ich nicht mit so einer ollen while schleife durch alle datensätze gehen will. ich denke das dauert dann übelst lange so eine anfrage...

                        Kommentar


                        • #13
                          Original geschrieben von smasher
                          weil die datenbank sehr groß werden kann und ich nicht mit so einer ollen while schleife durch alle datensätze gehen will. ich denke das dauert dann übelst lange so eine anfrage...
                          Oooch. 1x ein "SELECT id, username" und dann für jeden User die Bildabfrage - mit zwischenzeitlicher Ausgabe der Bilddaten könnte das sogar flüssiger ablaufen als eine große Abfrage. Aber mal schauen, ob dazu jemand eine Query formulieren kann.

                          Kommentar


                          • #14
                            Original geschrieben von pekka
                            Oooch. 1x ein "SELECT id, username" und dann für jeden User die Bildabfrage - mit zwischenzeitlicher Ausgabe der Bilddaten könnte das sogar flüssiger ablaufen als eine große Abfrage. Aber mal schauen, ob dazu jemand eine Query formulieren kann.
                            naja...die schwierigkeit ist da trotzdem noch folgendes...

                            In der Tabelle stehen 8000 Datensätze.
                            Jeder einzelne Datensatz enthält den usernamen, die zeit und das Bild.
                            Nun will ich die letzten 50 Bilder die gemacht worden sind ausgeben.
                            Von jedem User dürfen aber nur maximal 3 ausgegeben werden.

                            ..das sind doch schonmal mindestens 3 Abfragen und ein bissel rumgerechne oder nicht?

                            Aber ich dank dir trotzdem schon mal für deine Hilfe!

                            Kommentar


                            • #15
                              Das ist natürlich Tricky!
                              Ich würde in dem Fall zu einer Cache-Lösung neigen - also die gesamte Berechnung in einem getrennten Skript zu machen, das das ganze ganz normal mit PHP berechnet und die Ergebnisse vorgekaut irgendwo ablegt. Das Skript wird dann nur angestoßen, wenn einer der User ein Bild aktualisiert - wenn dabei sowieso ein Bildupload läuft, fallen die paar Sekunden auch nicht mehr ins Gewicht.

                              Kommentar

                              Lädt...
                              X