Zwei Tabellen limitiert verknüpfen

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

  • Zwei Tabellen limitiert verknüpfen

    Hi Leute,

    ich bin total verzweifelt ...

    Ich habe zwei Tabellen:

    fotogb fotos
    -----------------------------------------------

    fotogb_id --------1-- foto_id
    foto_id -----n--------- pfad
    user_id
    inhalt


    In "fotogb" werden Kommentare zu den Bildern, die in "fotos" gespeichert werden, gespeichert.

    Nun möchte ich in einer Abfrage die letzten zehn Kommentare der neuesten zehn Bilder abfragen.


    Bisher löse ich das Problem wie folgt (vereinfacht dargestellt):

    Code:
    select * from fotos limit 1,10
    while ($row=mysql(fetch_object()) {
            "zeige Bild an"
            select * from fotogb where foto_id = $row-> foto_id order b fotogb_id DESC limit 0,10
            while ($row2=mysql_fetch_object()) {
                    "zeige kommentar an"
           }
    }
    Das kann nicht optimal sein, weil ich so 11 (!) Abfragen gegen die DB starte ...


    Mit einem Subselect krieg ich es nicht hin, mit einem Join krieg ich es nicht hin ...

    Ich beschäftige mich seit vielen Monaten damit und ich krieg es einfach nicht hin ...

    Hat von euch jemand einen Denkansatz ?!?

    Ich danke euch so sehr ...
    Yeah !

  • #2
    Seit vielen Monaten? Zeig doch mal deine Ansätze.

    Kommentar


    • #3
      Ich habe ehrlich gesagt keinen brauchbaren Ansatz.

      Eine Lösung über einen Join funktioniert nicht, weil ich hier nur entweder die Anzahl der Kommentare oder die Anzahl der Bilder begrenzen kann.

      In einem SubSelect ist es nicht möglich, eine Limit-Anweisung mit anzugeben.

      Ich liege manchmal nachts wach im Bett und grüble ... aber mir fällt nix ein ...


      Ich hab auch schon darüber nachgedacht, das mit Views zu lösen - aber auch das bringt nix ...
      Yeah !

      Kommentar


      • #4
        Code:
        select * from fotogb where foto_id IN (
          select foto_id from fotos limit 1,10
        ) order b fotogb_id DESC limit 0,10

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Hab ich auch schon versucht - mit folgendem Ergebnis :

          [tabelle] ERROR 1235: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

          Sonst wäre das zu geil *g*
          Yeah !

          Kommentar


          • #6
            Dann update halt MySQL...
            Oder du markierst die letzten 10 Kommentare immer besonders, dann kannst du nach dem Kriterium joinen.
            UPDATE kommentare SET neu = 0;
            UPDATE kommentare SET neu = 1 ORDER BY id DESC LIMIT 10;

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar

            Lädt...
            X