Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [sql] not in wird ignoriert? (https://www.delphipraxis.net/35211-%5Bsql%5D-not-wird-ignoriert.html)

alcaeus 3. Dez 2004 22:29


[sql] not in wird ignoriert?
 
Hi allerseits,

ich habe folgendes SQL-Statement:

SQL-Code:
SELECT
  f.forum_id,
  f.forum_name,
  t.topic_title,
  t.topic_id,
  t.topic_last_post_id,
  t.topic_poster,
  t.topic_views,
  t.topic_replies,
  t.topic_type,
  p2.post_time,
  p2.poster_id,
  u.username as last_username,
  u2.username as author_username
FROM
  phpbb_forums f,
  phpbb_posts p,
  phpbb_topics t,
  phpbb_posts p2,
  phpbb_users u,
  phpbb_users u2 
WHERE
  f.forum_id NOT IN ("1, 2, 3")
  AND t.forum_id = f.forum_id
  AND p.post_id = t.topic_first_post_id
  AND p2.post_id = t.topic_last_post_id
  AND t.topic_moved_id = 0 
  AND p2.poster_id = u.user_id
  AND t.topic_poster = u2.user_id
ORDER BY t.topic_last_post_id DESC
LIMIT 5
Allerdings erhalte ich in der Ergebnismenge auch Beiträge, welche als forum_id 2 bzw. 3 haben. Kann mir vielleicht jemand erklären wo der Fehler liegt? Ich habe nämlich eine halbe Stunde lang gesucht und nichts gefunden :roll:

Thanx and Greetz
alcaeus

[edit]Als offene Frage markiert[/edit]

plumper 3. Dez 2004 22:38

Re: [sql] not in wird ignoriert?
 
Mit welcher DB arbeitest Du denn zusammen??

alcaeus 3. Dez 2004 22:40

Re: [sql] not in wird ignoriert?
 
Hi plumper,

ich greife mit PHP auf eine MySQL-DB zu. Bis jetzt hat der Code aber immer einwandfrei funktioniert :gruebel:

Greetz
alcaeus

plumper 3. Dez 2004 22:44

Re: [sql] not in wird ignoriert?
 
[ot]Und Du hast nichts gemacht :mrgreen: [/ot]

Nein, aber dann habe ich im Moment keine Idee.. Ich dachte, dass es vieleicht heißt NOT ... IN ... und nicht ... NOT IN ...

viel Glück...

alcaeus 3. Dez 2004 22:46

Re: [sql] not in wird ignoriert?
 
Zitat:

Zitat von plumper
[ot]Und Du hast nichts gemacht :mrgreen: [/ot]

Nein, wirklich nicht :roll:
Der Code funktioniert auf einer anderen Seite ohne Probleme, diesmal jedoch nicht :(

Greetz
alcaeus

[add]Habs gerade gelöst: es muss heißen
SQL-Code:
NOT IN (1, 2, 3)
, also ohne " :roll:

Robert_G 3. Dez 2004 23:00

Re: [sql] not in wird ignoriert?
 
Zitat:

Zitat von alcaeus
Der Code funktioniert auf einer anderen Seite ohne Probleme, diesmal jedoch nicht :(

Wenn er funktioniert, dann rein zufällig. :mrgreen:
in () ist eigentlich nur eine Vereinfachung, eigentlich würde
SQL-Code:
... a in (1, 2, 3)
als
SQL-Code:
...(a = 1 or a = 2 or a = 3)
behandelt werden. ;)
bei dir kam nur
SQL-Code:
...(a = "1, 2, 3")
raus. :mrgreen:
Wobei es manche komischen DBs gibt, für die das ein String ist, jede DB, die sich tight an den Standard hält würde es als Bezeichner ansehen.

alcaeus 3. Dez 2004 23:02

Re: [sql] not in wird ignoriert?
 
Hi Robert,

du kommst ein paar Minuten zu spät. Mir ist aufgefallen, dass es sonst immer nur eine ID war, die ausgeschlossen wurde. In dem Fall funktionierte der Code auch mit ". Sobald jedoch mehr als eine ID ignoriert werden muss, schlägt das Statement natürlicherweise fehl.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz