SELECT über zwei Tabellen und LIMIT nur für zweite Tabelle möglich?

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

  • SELECT über zwei Tabellen und LIMIT nur für zweite Tabelle möglich?

    Hi,

    hat jemand eine idee wie ich folgendes in einer abfrage lösen könnte:

    zwei tabellen...

    themen
    nachrichten

    SELECT t.thema, n.beitrag FROM themen t, nachrichten n WHERE n.themen_id=t.id ORDER BY t.thema, n.beitrag DESC

    somit kann ich ja zu jedem thema die passenden nachrichten mit auslesen.... es sollen aber nur 5 beiträge zu jedem thema ausgelesen werden
    mit LIMIT kann ich das ganze beschränken...
    nur beschränkt dieses LIMIT alle abfragen und nicht nur die beiträge...

    grüße

  • #2
    OffTopic:
    bissu "miro912" ???
    Zuletzt geändert von Tartax; 01.06.2003, 15:26.
    Die Musikreview Seite

    hi, i'm a signature virus. copy me into your signature to help me spread.

    Kommentar


    • #3
      Original geschrieben von Tartax
      OffTopic:
      bissu "miro912" ???
      nein.. wieso?

      Kommentar


      • #4
        ist das von der Performance her wichtig, das nur die ersten 5 Beiträge zu einem Thema selektiert werden?

        Sonst begrenz das doch einfach in der Ausgabe-Schleife auf 5.

        Wüßte jedenfalls so direkt nicht, wie's mit SQL direkt geht, wenn mir noch was einfällt editier ich's rein.

        Kommentar


        • #5
          jup... so mache ich es bisher....

          aber macht ja dann auch nicht so richtig Sinn....
          zum Bsp. gibts dann 100 Nachrichten zu einem Thema und ich brauche nur die ersten 5-10... die restlichen 90 oder mehr sind dann umsonst ausgelesen worden. Und bei mehreren Themen summiert sich das ganze leider ziemlich schnell... Okay letztendlich habe ich weiterhin nur eine einzige Abfrage.. aber bei soviel Abfall.
          Trotzdem danke dir.

          Kommentar


          • #6
            mache doch eine abfrage für die 5 letzten themen. und beim ausgeben in einer schleife machst du dann jeweils wieder einen select mit LIMIT 5
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              jo...
              nur das wollte ich ja nicht....
              ich wollte möglichst wenige Abfragen benutzen....
              so habe ich bisher nur eine einzige Datenbankabfrage...
              sonst ja immer die eine für die Themen und dann je Thema nochmals eine für die Beiträge....
              da lese ich dann zwar immer nur wirklich genau die 5 aus.... aber ich benutze eine neue Abfrage... und umso mehr Themen.. umso mehr Abfragen...
              aber es scheint wohl echt keine andere Möglichkeit zu geben..
              wäre halt schön gewesen, wenn man diese Beschränkung in einer SELECT Abfrage nur auf eine der Tabellen festlegen kann, was hier ja auch Sinn machen würde. Würde einiges an Abfragen sparen.

              Kommentar


              • #8
                aber das drückt dann doch auch wieder die Performance, oder? Wenn er pro Thema nochmal ein Statement hat, sind das bei z.B. 10 Themen ja schon 11 Statements. Und imho sind do mehrere kleine Statements langsamer als ein großes... oder ist da der Unterschied gar nicht zu bemerken, weil die Statements immernoch schnell genug abgehandelt werden?

                EDIT:
                du sagtest doch, dein jetziges Statement begrenz mit Limit die Auswahl der Themen... warum selektierst Du dann nicht andersherum? Also SELECT n.beitrag, t.thema .... LIMIT 5? vielleicht geht das ja
                Zuletzt geändert von P2oldi; 02.06.2003, 13:45.

                Kommentar


                • #9
                  Original geschrieben von P2oldi
                  du sagtest doch, dein jetziges Statement begrenz mit Limit die Auswahl der Themen... warum selektierst Du dann nicht andersherum? Also SELECT beitrag, thema .... LIMIT 5? vielleicht geht das ja
                  das muss man mal testen...
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    hab hier grad nix zum testen da, sitz im Büro

                    aber ich glaub das wird auch net funzen, weil dann insgesamt nur 5 Beiträge kommen *an die Stirn schlag*

                    OffTopic:
                    ist ein bissel warm heute, da bin ich etwas langsam

                    Kommentar


                    • #11
                      Original geschrieben von P2oldi
                      aber ich glaub das wird auch net funzen, weil dann insgesamt nur 5 Beiträge kommen *an die Stirn schlag*
                      nein. 5*5, da in der schleife ja wieder gequery't wird...
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        ok, aber jedenfalls auch nicht das, was er gerne hätte...

                        dan halt doch so wie oben beschrieben, keinen Plan wie es sonst gehen sollte

                        Kommentar


                        • #13
                          in nur einer query geht es nicht direkt. entweder 2 queries oder eben eine große und dann mit php filtern...
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            danke für eure Mühe....
                            besonders an so nem heißen Tag.....
                            habs grad mal getestet...
                            aber das LIMIT bezieht sich auf die Anzahl der Abfragen und nicht nur auf eine Tabelle..
                            Naja schade.... geht wohl nicht so schön wie ichs mir vorgestellt habe ;-)
                            Muss ich halt entweder alles auslesen, wobei da ziemlich viel Müll anfällt... oder einfach mehrere Abfragen in Kauf nehmen, die dann aber wirklich nur die Datensätze auslesen, die wirklich gebraucht werden...

                            Noch einen schönen Nachmittag euch.... und nochmals danke...

                            Kommentar

                            Lädt...
                            X