Zmodyfikowałem to tak:
SELECT
userData.userId, COUNT(userSitesData.siteId) AS userSites, userSitesData.userWordsCount AS userWords
FROM
userData
LEFT JOIN (
SELECT
userId,
siteId,
COUNT(siteWords.wordId) AS userWordsCount
FROM
user2site
LEFT JOIN
siteWords
USING(siteId)
GROUP BY siteId
) AS userSitesData
USING(userId)
WHERE
userData.userOwnerId IN (1000,1002) OR
userData.userOwnerId IS NULL
GROUP BY
userId,siteId
i mam w wyniku:
"userId";"userSites";"userWords"
"1000";"0";NULL
"1001";"1";"2"
"1001";"1";"6"
które mnie nie urządza, gdyż wynik oczekiwany jest:
"userId";"userSites";"userWords"
"1000";"0";NULL
"1001";"2";"8"
zmiana prosta do zrozumienia, ale jakoś cięższa do napisania.
PS. Na klucze i sprawdzanie ich użycia przyjdzie pora niebawem ... klucze wolę definiowac graficznie a nie z palca, phpmyadmin nie chce wspolpracowac, a softu heidisql nie mam pod reka.
Ok jest.
SELECT
userData.userId, COUNT(userSitesData.siteId) AS userSites, SUM(userSitesData.userWordsCount) AS userWords
FROM
userData
LEFT JOIN (
SELECT
userId,
siteId,
COUNT(siteWords.wordId) AS userWordsCount
FROM
user2site
LEFT JOIN
siteWords
USING(siteId)
GROUP BY siteId
) AS userSitesData
USING(userId)
WHERE
userData.userOwnerId IN (1000,1002) OR
userData.userOwnerId IS NULL
GROUP BY
userId
Zabieram się za klucze

Dzieki za pomoc.