SELECT-Anweisung über 2 Tabellen ...

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

  • SELECT-Anweisung über 2 Tabellen ...

    Hallo,

    irgendwie steh ich auf dem Schlauch...

    ich habe 2 tabellen:
    - tab1 (id)
    - tab2 (id, tab1_id, pkt, monat, jahr)

    in tab1 sind daten zu bildern gespeichert
    in tab2 sind die bewertungen zu den bildern gespeichert

    jetzt möchte ich die 10 bilder mit der höchsten bewertung abwärts sortiert ausgeben. leider scheint dies online nicht korrekt zu funktionieren.

    habe es offline wie folgt gelöst, wo es funktioniert:

    PHP-Code:
    SELECT *, (SELECT SUM(pktFROM tab2 WHERE tab1_id=B.tab1_id AND B.monat='".date("m")."' AND B.jahr='".date("Y")."') AS punkte,
    (
    SELECT COUNT(*) FROM tab2 WHERE tab1_id=B.tab1_id AND B.monat='".date("m")."' AND B.jahr='".date("Y")."') AS stimmen
    FROM tab2 
    AS Btab1 AS G
    WHERE B
    .tab1_id=G.id AND B.monat='".date("m")."' AND B.jahr='".date("Y")."' AND B.pkt>0
    GROUP BY B
    .tab1_id ORDER BY punkte/stimmen DESC LIMIT 10 
    kann es an verschiedenen mysql-versionen liegen?
    - online: server-version 4.0.25
    - offline: server-version 5.0.37
    dies schrieb
    derSESO

  • #2
    Re: SELECT-Anweisung über 2 Tabellen ...

    Ja, Subselects unterstuetzt Mysql erst ab 4.1 aufwaerts.

    (Wenn du eine vernuenftige Fehlerbehandlung in dein Script eingebaut haettest, dann haette dir MySQL auch mitgeteilt, dass es die verwendete Syntax nicht versteht - und dann haettest du nicht nur achselzuckend "funzt nich" sagen brauchen.)
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      hi!

      hab ich's mir doch gedacht
      wie kann man die abfrage anders gestalten?
      dies schrieb
      derSESO

      Kommentar


      • #4
        Mit einem JOIN ?
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          hi,

          hab ichs mir gedacht - joins - damit bin ich noch nie wirklich zurecht gekommen.
          dies schrieb
          derSESO

          Kommentar


          • #6
            So schwer ist das nicht. Guckst du hier .. Ein Left Join scheint mir das richtige zu sein.

            Eine andere und ggf. bessere Lösung wäre den verstaubten MySQL Server upzudaten.
            gruss Chris

            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

            Kommentar


            • #7
              hi,

              das mit dem update prüf ich heute abend.
              in der regel kann man zwischen verscheidenen versionen (4.x oder 5.x) von mysql beim provider wählen. mal schaun.

              wegen der joins ... danke für den link, das zieh ich mir mal rein.
              dies schrieb
              derSESO

              Kommentar

              Lädt...
              X