ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1326
1326
EMPFEHLEN
-
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
-
17.08.03 10:48 #2
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...(?)
-
Hab es hinbekommen
Mfg AkkiePHP-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);
Geändert von akkie (17.08.03 um 12:01 Uhr)
-
17.08.03 12:14 #4
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
-
MySQL Join von 2 oder mehreren Tabellen
Von Joe im Forum PHPAntworten: 4Letzter Beitrag: 11.10.10, 15:19 -
Problem bei einem JOIN zw. zwei Tabellen, (Daten aus beiden Tabellen auslesen)
Von CookieBuster im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 05.04.10, 22:20 -
Inner Join mit mehreren SQL-Server Datenbanken
Von Moe1980 im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 06.05.08, 13:58 -
JOIN limitieren bei mehreren bezug-IDs
Von Sebigf im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 12.07.06, 12:27 -
[MS Access] JOIN mit mehreren Tabellen
Von phil_gdm im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 05.09.05, 18:46





Zitieren

Login





