Klaus: SELECT in WHERE Klausel

Beitrag lesen

Hallo,
also hier gab es ja letzten ein Thema, ob man bestimmte Funktionen lieber per PHP oder SQL Lösen soll.
Also ob man lieber DB1 und dann Db2 abfragen, oder ob man das Kombinieren soll:

Bsp:
SELECT id FROM table1 WHERE aktiv = '1';
$wert = "$row->id,";

SELECT * FROM table2 WHERE userid IN($wert);

Oder
SELECT * FROM table2 AS tab1 WHERE tab1.userid IN(SELECT tab2.id FROM table1 AS tab2 WHERE tab2.aktiv = '1');

Dort wurde aus performance technischen Gründen die zweite Variante empfhohlen.

Jetzt habe ich folgende Abfrage:
SELECT tab1.id
FROM user AS tab1
WHERE tab1.userid =  '2' AND tab1.gruppe
IN (
SELECT tab2.id
FROM gruppen AS tab2
WHERE tab2.admin = '1' )

Diese Abfrage funktioniert bei der gleichen Table bei PHP 4.1 ohne Probleme, aber auf meinem Webserver läuft noch MySQL 3.23.58

Die beiden einzelnen SELECT's funktionieren soweit einwandfrei, nur die Kombination funktioniert nicht.
Und fragt man erst SELECT tab2.id FROM gruppen ab, und setzt das Ergebnis in das IN(..) ein, geht dies ohne Probleme.

Ich habe dies sowohl per phpMyAdmin und per PHP (mysql_query()) probiert, beide liefern folgenden Fehler:
You have an error in your SQL syntax near 'SELECT tab2.id
FROM gruppen....

Liegt das jetzt an der Abfrage, so dass man dies auch noch Umschreiben könnte, und es dann funktionieren würde?
Oder unterstützte MySQL 3.x die verschachtelte SQL Abfrage nicht?

Grüße Klaus