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

Board zum Thema mySQL
Antworten
k00ni
Beiträge: 1474
Registriert: 22. Juni 2006, 16:44
Kontaktdaten:

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

Beitrag von k00ni » 30. Mai 2007, 17:14

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?

Code: Alles auswählen

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

Benutzeravatar
Powie
Administrator
Beiträge: 7454
Registriert: 4. März 2003, 09:32
Wohnort: Ilmtal
Kontaktdaten:

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

Beitrag von Powie » 30. Mai 2007, 18:45

Das Problem ist der "Subselect".

Workaround:
Die ID's in einer extra Query ziehen und einen Where in zusammensetzen.
*Never say Never* - [ Dropbox | Webspace ]

k00ni
Beiträge: 1474
Registriert: 22. Juni 2006, 16:44
Kontaktdaten:

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

Beitrag von k00ni » 30. Mai 2007, 19:04

[quote]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

Benutzeravatar
Powie
Administrator
Beiträge: 7454
Registriert: 4. März 2003, 09:32
Wohnort: Ilmtal
Kontaktdaten:

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

Beitrag von Powie » 30. Mai 2007, 19:17

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,...... )
*Never say Never* - [ Dropbox | Webspace ]

k00ni
Beiträge: 1474
Registriert: 22. Juni 2006, 16:44
Kontaktdaten:

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

Beitrag von k00ni » 30. Mai 2007, 20:46

[quote]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. :D

Antworten