JOIN kein Durchblick

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

  • JOIN kein Durchblick

    PHP-Code:
    SELECT 
    FROM tipps
    LEFT JOIN benutzerpunkte ON tipps
    .benutzername benutzerpunkte.benutzername
    AND tipps.spieltag =31
    WHERE benutzerpunkte
    .spieltag =31
    ORDER BY punkte_neu DESC 
    Bei dieser Abfrage habe ich das Problem, dass die Einträge der Benutzer mir aus der Tabelle benutzerpunkte ausgegeben werden. Ich würde aber gerne die Benutzer aus der Tabelle Tipps auslesen, aber nach der Tabelle Benutzerpunkte (Spalte punkte_neu sortieren).

    Geht das überhaupt?

    Tabelle1 (benutzerpunkte)
    Benutzername
    punkte_neu
    spieltag
    ...

    Tabelle2 (tipps)
    Benutername
    spieltag
    ...

    Habe auch den gepinnten Thread gelesen, aber leider verstehe ich nach 2h join hin join her fast überhaupt nichts mehr.

    Für jede Hilfe wäre ich sehr dankbar.

    Gruß Luigihausen

  • #2
    statt SELECT * solltest du evtl mal SELECT feld1, feld2, usw. verwenden und nur die felder angeben, die du aus den entsprechenden tabellen haben willst.

    dann sollte es für dich auch einfacher gehen.
    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


    • #3
      Da in den Tabelle noch jede Menge mehr spaltens sind, und ich fast jede davon benötig, habe ich das * stehen gelassen.

      Das ändert aber doch nichts an meinem Problem von oben, oder habe ich da was falsch verstanden?

      Kommentar


      • #4
        ORDER BY benutzerpunkte.punkte_neu DESC ?

        wonach sortiert er es denn bei dem was du gepostest hast

        Kommentar


        • #5
          @zonthor
          In meinem Beispiel wird schon richtig sortiert, nur werden die User aus der falschen Tabelle genommen.

          Es soll nach den vorhandenen Usern mit dem Spieltag xx in Tabelle 2 (tipps) gesucht werden, aber wenn die User in Tabelle 1 (benuterpunkte) vorhanden sind (kann auch sein das die ggf. noch nicht in der anderen Tabelle stehen), dann soll nach den entsprechenden Punkten in der Tabelle 1 sortiert werden.

          1. Suche alle User mit Spieltag XX aus Tabelle2 (tipps) und sortiere die nach den Punkten der entsprechenden User aus Tabelle1 (benutzerpunkte).

          Ist das in einer SQL-Abfage machbar?

          Kommentar


          • #6
            sau dir mal mal die funktion IFNULL() an.

            Bsp.

            Code:
            SELECT *, IFNULL(tabelle1.wert, tabelle2.wert) AS sort
            ...
            ORDER BY sort
            ist der wert in tabelle1 NULL sortiert er nach wert in tabelle2, ist er ungleich NULL sortiert er nach wert in tabelle1

            gruß Basti

            Kommentar

            Lädt...
            X