Kann ich irgendwie Tabellen beitreten und die Verwendung von distinct in der folgenden MySQL-Abfrage vermeiden. laded_by_id zeigt die Benutzer-ID an, wer diesen Benutzer eingeladen hat.Wie optimiert man eine verschachtelte Abfrage?
SELECT
user1.id, count(distinct user2.id) AS theCount, count(distinct user3.id) AS theCount2
FROM
users AS user1
LEFT OUTER JOIN
users AS user2 ON user2.invited_by_id=user1.id
LEFT OUTER JOIN (
SELECT id, invited_by_id FROM users WHERE signup_date >= NOW() - INTERVAL 30 DAY
) AS user3 ON user3.invited_by_id=user1.id
GROUP BY user1.id;
Warum brauchen Sie deutlich? Es scheint mir, dass Benutzer X nur einmal von Benutzer Y * eingeladen werden darf. –
@Lieven Da die Tabelle zweimal verknüpft wird, können Sie doppelte Zeilen erhalten. –