MarkusFröhlich: Performanter SQL

Beitrag lesen

SELECT *,

(SELECT count() FROM FRIENDS f WHERE b.uid = f.uid) AS FRIENDS,
(SELECT count(
) FROM ARTIKEL a WHERE b.uid = a.uid) AS ARTIKEL,
FROM BENUTZER b


>   

~~~sql
  
So würde ich es machen:  
  
   select count(distinct f.uid) as Friends  
          count(distinct a.uid) as Artikel  
           from Benutzer b  
left outer join FRIENDS f on (b.uid = f.uid)  
left outer join FRIENDS a on (b.uid = a.uid)  

So hast du ohne Probleme zugriff auf alle Tabellen.
Und da alle Uid eh einen Index haben sollte es auch keine Performace Probleme geben.