MySQL 4.x nicht zu verschachtelten Where-Klauseln fähig ?

Begonnen von k00ni, 30. Mai 2007, 16:14:36

Vorheriges Thema - Nächstes Thema

k00ni

Ich raufe mir schon seit einiger Zeit die Haare an folgendem SQL-Statement. In MySQL 5.0.x läuft es sauber, unter MySQL 4.0.x bekommt er Probleme bei meiner verschachtelten Where-Klausel. :ugly: Ich glaubs nicht, ist MySQL 4.x nicht fähig diese Verschachtelung zu bearbeiten?
 

SELECT DISTINCT * 
FROM powie_friends_userprofile_userfields
WHERE belonged_usergroup = \'0\'
OR belonged_usergroup IN (SELECT grpid FROM powie_pfusergrp WHERE userid=\'2\' );

 
 
Was hätte ich für Möglichkeiten, das Statement unter MySQL 4.x zum Laufen zu bekommen?
 
Grüße und Danke

Powie

Das Problem ist der \"Subselect\".
Workaround:
Die ID\'s in einer extra Query ziehen und einen Where in zusammensetzen.

k00ni

Workaround:Die ID\'s in einer extra Query ziehen und einen Where in zusammensetzen.
[/quote]
Was genau meinst du? Wie soll ich denn anders ein Query absetzen und es dann in meine Bedingungen einfließen lassen? Hättest du ein Beispiel oder Link?
 
Grüße

Powie

Das Problem ist das :
Where bla in ( Select .... ) .
Das nennt man SubSelect, und das kann die alte 4.x noch nicht.  
Aber du kannst eine vorgefertigte Liste abfragen:
Where bla in ( 10,13,5,34,23,...... )

k00ni

Aber du kannst eine vorgefertigte Liste abfragen:
Where bla in ( 10,13,5,34,23,...... )
[/quote]
Das Problem ist, dass ich diese zur Laufzeit abfrage... Aber ich könnte das umgehen, in dem ich vorher diese Nummern abfrage und diese dann in den String reinkopiere.
Danke für die Idee.  /uploads/emoticons/icon_e_biggrin.gif.40dcc5d69f84e2cf29e77d8e1e9a84e2.gif\" alt=\":D\" />

all your base are belong to us