Abfrage von MySQL 5 nach MySQL 4 konvertieren

TDS

Webbie u. Progger
ID: 36770
L
25 April 2006
1.473
61
Da es in MySQL < 4.1 keine geschachtelten Abfragen gibt und ich nicht weiß wie ich das sonst realisieren soll frage ich euch mal ;)

select count(*) as num from portal_userlist as A where A.ref_id = 0 or
(A.ref_id > 0 and ((select id from portal_userlist where id = A.ref_id) IS NULL))

Wie kann ich das In MySQL-Syntax 4 ausdrücken?
 
Zuletzt bearbeitet:
Ne, die Abfrage liefert 333 Ergebnisse egal wie ich sie verändere. Es dürfen aber nur max. 134 ausgegeben werden da dies die Zahl ist die auf das Statement zutrifft.
 
willst du alle ohne ref + ohne existierenden ref haben?

PHP:
SELECT COUNT(*)
       FROM portal_userlist      AS u
       LEFT JOIN portal_userlist AS u_ref ON u.ref_id=u_ref.id
       WHERE u.ref_id = 0
          || u_ref.id IS NULL
 
Das ist es was derzeit funktioniert mit MySQL:

Code:
select count(*) as num from portal_userlist as A
left join portal_userlist as B on B.id = A.ref_id 
where A.ref_id = 0 or B.id is null

Doch die Anzahl der Refs wird immer mit null angegeben:

Code:
SELECT A.id as id, A.username as username, A.email as email, count(*) as refs FROM portal_userlist AS A
LEFT JOIN portal_userlist AS B ON B.id = A.ref_id
LEFT JOIN portal_userlist AS C ON C.ref_id = A.id
WHERE A.ref_id = 0 OR B.id IS NULL group by A.ID

Soweit habe ich die Anfrage schon gebracht aber ich will ja nicht ständig eine Abfrage starten um die Ref-Anzahl zu ermitteln sondern diese gleich als Resultat mit anzeigen lassen.