tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1326
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    akkie akkie ist offline Mitglied Gold
    Registriert seit
    Feb 2003
    Beiträge
    185
    Hi

    Hab mal wieder ein Problem.

    Ich versuche grad ein Select Statement für mein Gästebuch zu bauen. Dafür verwende ich 3 Tabellen.

    cms_gbook
    cms_gbook_comment
    cms_user

    In cms_gbook und in cms_gbook_comment sind jeweils die user_id`s der Poster gespeichert.

    Nun will ich aber über eine Abfrage den user_id`s gleich den passenden Name zuordnen. Mit dem User aus der Tabelle cms_gbook habe ich es hinbekommen. Nur bei allen 2 Usern scheiter ich.


    PHP-Code:


    $query 
    "SELECT t1.id, t1.text, t1.name, t1.user_id, t1.email, t1.website, t1.date_time,

              t2.id as comment_id, t2.comment, t2.name as comment_name, t2.user_id as comment_user_id, t3.user_name

              FROM cms_gbook t1 LEFT JOIN cms_gbook_comment t2 ON t1.id = t2.post_id

              LEFT JOIN cms_user t3 ON t3.user_id = t1.user_id

              ORDER BY t1.id DESC LIMIT "
    .intval($limit).",".$row_settings['gbook_anz']."";

    $result safe_query($query); 

    ich würde jetz gern das Feld comment_user_name haben das dann den passenden Usernamen enthält.


    Mfg Akkie
     

  2. #2
    Avatar von Mark
    Mark Mark ist offline Mod | Cinema4D
    tutorials.de Moderator
    Registriert seit
    Aug 2003
    Ort
    Vienna:Austria
    Beiträge
    8.123
    Blog-Einträge
    10
    Hi!

    Nach nicht wirklich langem Studium Deines Statements ein kleiner Ansatz:
    Wenn ein Eintrag in cms_gbook mehrere Einträge im cms_gbook_comment haben kann, dann müsste das zweite LEFT JOIN
    ON t3.user_id = t2.user_id
    lauten...(?)
     

  3. #3
    akkie akkie ist offline Mitglied Gold
    Registriert seit
    Feb 2003
    Beiträge
    185
    Hab es hinbekommen

    PHP-Code:
    $query "SELECT t1.id, t1.text, t1.name, t1.user_id, t1.email, t1.website, t1.date_time,
              t2.id as comment_id, t2.comment, t2.name as comment_name, t2.user_id as comment_user_id, t3.user_name, t4.user_name as comment_user_name
              FROM cms_gbook t1 LEFT JOIN cms_gbook_comment t2 ON t1.id = t2.post_id
              LEFT JOIN cms_user t3 ON t3.user_id = t1.user_id
              LEFT JOIN cms_user t4 ON t4.user_id = t2.user_id
              ORDER BY t1.id DESC LIMIT "
    .intval($limit).",".$row_settings['gbook_anz']."";
    $result safe_query($query); 
    Mfg Akkie
    Geändert von akkie (17.08.03 um 12:01 Uhr)
     

  4. #4
    Avatar von Mark
    Mark Mark ist offline Mod | Cinema4D
    tutorials.de Moderator
    Registriert seit
    Aug 2003
    Ort
    Vienna:Austria
    Beiträge
    8.123
    Blog-Einträge
    10
    Dann würde Dir aber doch einfach ein weiteres LEFT JOIN helfen, oder nicht?

    Bzw. ein anderer Grundgedanke:
    brauchst Du für die comments wirklich ein zweites Table?
    Im grundegenommen sind die comments gleich der Haupteinträge, plus der "Verlinkung" zum Haupteintrag:
    id, to_id, text, user_id
    -> gbook-Eintrag: id=1, to_id="", text="text1", user_id=101
    -> gbook_comment: id=2, to_id=1, text="antwort auf text1", user_id=155
    -> gbook_comment: id=3, to_id=1, text="antwort 2 auf text1", user_id=233

    Somit sind alle, die kein to_id haben -> cms_gbook und
    per LEFT JOIN des Tables auf sich selbst bekommst Du auch die comments...
     

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 11.10.10, 15:19
  2. Problem bei einem JOIN zw. zwei Tabellen, (Daten aus beiden Tabellen auslesen)
    Von CookieBuster im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 05.04.10, 22:20
  3. Inner Join mit mehreren SQL-Server Datenbanken
    Von Moe1980 im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 06.05.08, 13:58
  4. JOIN limitieren bei mehreren bezug-IDs
    Von Sebigf im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 12.07.06, 12:27
  5. [MS Access] JOIN mit mehreren Tabellen
    Von phil_gdm im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 05.09.05, 18:46