SQL Query soll Dinge weg lassen

MrFreeze

Mitglied
Ich habe ein Forum.

2 Tables threads und post



Ich möchte gerne alle Threads auflisten in einem Zeitraum X. Außerdem sollen dann alle dazugehörigen Postings geprüft werden, darauf das diese NICHT von einem bestimmten User sind. sollte ein Posting in Thread X von diesem besagten user sein, soll der gesamte Thread nicht ausgegeben werden. Das hier ist mein Versuch, funktioniert nicht. Dennoch erhalte ich Threads, in denen er schrieb. Wo ist mein Fehler, wer mag, kann mir helfen?



Die Userid des ungewünschten user ist 70



PHP:
  $get_threads_query = $vbulletin->db->query_read("

   SELECT thread.threadid, thread.title, thread.replycount, postusername, postuserid, thread.dateline AS postdateline, IF(views <= thread.replycount, thread.replycount+1, views) AS views, thread.lastposter, thread.lastpost, thread.lastpostid, pollid, thread.forumid, thread.open, sticky

   FROM " . TABLE_PREFIX . "thread as thread

   LEFT JOIN " . TABLE_PREFIX . "post AS post  ON (post.threadid = thread.threadid)

   WHERE open != 10

   AND thread.visible = 1 

   AND thread.dateline >= $new_time

   AND post.userid != 70 

   AND thread.forumid NOT IN (0, 8, 12, 25, 13, 14, 11, 65, 38, 66, 67)

   GROUP BY thread.threadid

   ORDER BY thread.dateline DESC

  ");





ICH DANKE SEHR
 
Moin MrFritz,

ich kann nicht einschätzen, ob Du überhaupt Felder aus der gejointen "post"-tabelle mit anzeigst.
Sprich: ob Du diesen Join überhaupt brauchst.

Aber die ganzen ganzen Threads wegfiltern, in denen die "userid 70" mitgeschrieben hat geht zum Beispiel mit dieser Bedingung ANSTATT der Bedingung "AND post.userid != 70"
SQL:
 t
AND dies...
....
-- die hier ersetzen: "AND post.userid != 70"
AND thread.treadid not in (
SELECT DISTINCT (t.threadid )
FROM " . TABLE_PREFIX . "thread as t 
WHERE  t.userid=70)
....
AND das...
...

Grüße
Biber
 
Zuletzt bearbeitet von einem Moderator:
scheinbar

Code:
AND thread.threadid NOT IN (SELECT DISTINCT (p.threadid ) FROM " . TABLE_PREFIX . "post AS p WHERE p.userid=70)

funktioniert es genau DAMIT wunderbar. Mensch was man alles noch mit mySQL machen kann! Wahninns in so ner "AND" Geschichte noch ein Select.... Das wird mir zu hoch :) ABER Dir danken, DAS TU ICH. Super Hilfe!
 
Zurück