Forum
Öffentliche Foren |
FORUM: Spiele & Computer THEMA: SQL OUTER JOIN Problem | |
AUTOR | BEITRAG |
Whiteknight KKK
RANG Ruler |
#1 - 31.10 10:29 Hi Leute, folgendes Problem (vereinfacht dargestellt).Tabelle "threads": thread_id (INT) last_post_date (DATETIME) Tabelle "thread_read" thread_id (INT) read_date (DATETIME) user_id (INT) Ich möchte herausfinden, ob es Threads gibt die noch ungelesen sind. Wenn der User den Thread gelesen hat, gibt es einen Eintrag in der thread_read Tabelle. Wenn dort kein Eintrag ist, hat der User den Thread noch nicht gelesen. Um nur die neuen Threads zu ermitteln muss "last_post_date" > "read_date" sein. Wie bekomme ich das mit SQL hin? Mein Versuch: SELECT COUNT(a.thread_id) FROM threads a LEFT JOIN thread_read b ON a.thread_id = b.thread_id AND a.last_post_date > b.read_date WHERE b.user_id = 1 Der Versuch ist leider falsch. Das mit dem last_post_date > read_date funktioniert nicht, da ja auch kein Eintrag für read_date in der Tabelle "thread_read" sein kann. Kann mir jemand helfen? |
thies
RANG Deckschrubber |
#2 - 31.10 10:48 nun du musst ja nicht jeden thread für jeden user in der tabelle thread_read aufnehmen, dann sollte der wert immer mit korrekten daten gefüllt sein und nie leer sein.ansosten kannst du ja auch die bedingung b.read_date != null (o.ä.) hinzufügen. |
Whiteknight KKK
RANG Ruler |
#3 - 31.10 10:54 ich glaub ich habs:SELECT a.thread_id FROM threads a LEFT JOIN thread_read b ON a.thread_id = b.thread_id AND b.user_id = 1 WHERE (last_post_date > read_date OR read_date IS NULL) |