[SQL] Join Left über 3 Tabellen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von master2005, 5. Juni 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 5. Juni 2010
    Join Left über 3 Tabellen

    Datenbankstruktur

    *neuigkeiten
    von_wem
    text

    *mitglieder
    bild
    username

    *folgen
    folgt_wem
    wer

    Es handelt sich quasi um news...

    Es sollen alle Neuigkeiten ausgegben werden die von mir sind also * From neuigkeiten WHERE von_wem = '$meinusername' und alle neuigkeiten von usern denen ich folge quasi wer = '$meinusername'

    Dann halt die Mitgliederdaten jeweils--username und Bild leider klappt dies nicht ganz

    Code:
    $abfrage_nk = "SELECT
    o.von_wem,
    o.text,
    o.id,
    f.wer,
    f.folgt_wem,
    m.bild,
    m.username
    FROM
    neuigkeiten o
    LEFT JOIN folgen f
    ON f.wer = '$_SESSION[username_tw]'
    LEFT JOIN mitglieder m
    ON m.username = f.folgt_wem
    ORDER BY o.id DESC
    ";


    Das ist mein versuch

    Also nochmal schnell ich wille alle neuigkeiten von mir abfragen und von den usern denen ich folge. zusätzlich halt von jedem user die userdaten bild und username


    Wäre super nett wenn mir damit eventuell einer helfen kann

    mfg
     
  2. 6. Juni 2010
    AW: Join Left über 3 Tabellen

    sagmal, fehlt da nicht das AS ?

    was gibts denn fürn sql error?
    sowas empfiehlt sich echt immer im phpmyadmin zu machen, kannste direkt on the fly an deinem query was ändern und rumtesten, ausgabe ist natürlich die tabelle die du haben willst
     
  3. 6. Juni 2010
    AW: Join Left über 3 Tabellen

    $abfrage_nk = "SELECT
    n.von_wem,
    n.text,
    n.id,
    f.wer,
    f.folgt_wem,
    m.bild,
    m.username
    FROM
    neuigkeiten AS n
    LEFT JOIN folgen AS f
    ON f.wer = '$_SESSION[username_tw]'
    LEFT JOIN mitglieder AS m
    ON m.username = n.von_wem
    ORDER BY n.id DESC
    ";


    So gibt der mir alle neuigkeiten aus
    aber ich möchte ja nur die neuigkeiten ausgeben und die mitgliederdaten deren verfasser die von mir sind (neuigkeiten.von_wem ='$_SESSION[username_tw]') und die denen ich folge (folge.wer = '$_SESSION[username_tw]' -> neuigkeiten.von_wem = folge.folgt_wem)
     
  4. 10. Juni 2010
    AW: Join Left über 3 Tabellen

    Hi master2005,

    versuch es mal mit diesem Statement. Ich bin mir leider nicht ganz sicher welche Daten du tatsächlich haben willst. Einfacher würde das ganze mit einem DummyTest Eintrag machen.
    Da ich nur erraten habe wie die Tabellen miteinander "verknüpft" sind:

    SELECT n.*, f.*, m.*
    FROM Neuigkeiten AS n
    INNER JOIN Mitglieder AS M ON m.username = n.von_wem
    LEFT JOIN Folgen as F ON f.wer = n.von_wem
    WHERE n.von_wem = '$_SESSION[username_tw]'
    ORDER bY n.id DESC


    Bei dem Select Statement noch einschränken welche Felder du tatsächlich brauchst.

    so long -b.-DRE
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.