SQL-Abfrage: die meisten user

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

  • SQL-Abfrage: die meisten user

    Hallo!
    Irgendwie find eich gerade nicht den richtigen Anfang!
    Und zwar habe ich eine Datenbanktabelle "news". jeder user kann news veröffentlichen. Es sind so ca. 80 user. Jetzt will ich die top 5 user anzeigen lassen, mit den meisten angelegten news!
    Meine bisherige Abfrage sieht so aus:
    PHP-Code:
    $top="SELECT users FROM news ORDER BY users"
    Irgendwie weiß ich nicht wie ich das die Abfrage machen soll. Hat da jemand ne Idee? Danke!

    [COLOR="Red"]*join*[/COLOR]

    Habs hinbekommen, thread kann gelöscht werden!
    Zuletzt geändert von AmicaNoctis; 12.02.2010, 10:05. Grund: Doppelpost

  • #2
    Der Thread wird nicht gelöscht. Poste lieber deine Lösung, falls mal ein anderer Anfänger dasselbe Problem hat.
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Naja, ich hab als erstes alle user ausgelsen aus der DB, und danach jeweils dei news, welche der aktuelle ausgelesene user angelegt hat.
      2 while schleifne ineinadner verschachtelt!

      Kommentar


      • #4
        Naja, das ist aber keine Lösung, sowas hätte man trotzdem besser über MySQL gemacht. Wenn es nämlich irgendwann mal tausende Benutzer mit jeweils tausenden Beiträgen gibt, bekommst du ein Problem beim Einlesen der Millionen von Datensätzen, nur um daraus die Top 5 zu ermitteln.

        Allerdings weiß ich nicht, wie deine DB ungefähr aussieht, weswegen ich nichts genaueres sagen kann.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          genau !!!

          hier mal nur eine möglichkeit mit SQL zu erfragen

          PHP-Code:

          SELECT user
          countid )
          FROM `news_tb`
          GROUP BY user
          LIMIT 0 
          10 
          das wäre ein beispiel für eine einfahce tabelle

          das geht natürlich auch mit mehreren

          z.b. user liegt in user_tb und ist in der news_tb nur mit seiner user_id abgelegt.


          PHP-Code:

          SELECT user_tb
          .usercountnews_tb.id )
          FROM news_tbuser_tb
          WHERE user_tb
          .id news_tb.user_id
          GROUP BY user_tb
          .user
          LIMIT 0 
          10 
          oder so ähnlich, soll ja auch nur zum denken anregen.
          fotos :

          http://www.flickr.com/photos/rassloff/collections/

          Kommentar


          • #6
            @rossixx: Bitte Anfängern keine Theta-Style-Joins vorschlagen, nachher machen die das dann noch so

            Das zweite Beispiel von rossixx sollte so aussehen:
            Code:
            SELECT user_tb.user, count( news_tb.id )
            FROM news_tb
            JOIN user_tb on user_tb.id = news_tb.user_id
            GROUP BY user_tb.user
            LIMIT 0 , 10
            Gruß,

            Amica
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              ich wollte nur ein tippp geben, aber von mir aus darf er gern deinen vorschlag übernehmen, solang er versteht was wofür steht.
              fotos :

              http://www.flickr.com/photos/rassloff/collections/

              Kommentar


              • #8
                Sehr gut, habe es verstadnen :-) DANKE!!

                Kommentar

                Lädt...
                X