У меня есть следующий запрос, который я использую, чтобы получить список имен пользователей из таблицы users
, которые не отправили запрос или получили запрос от пользователя с идентификатором id ' XXXXXXXXXX»в таблице friends
:Выбор count возвращает null вместо 0 внутри внутреннего соединения
SELECT u.user, f1.c1, f2.c2
FROM users u
LEFT JOIN
(
SELECT uid, fid, COUNT(*) AS c1
FROM friends f
WHERE f.fid = 'xXXXxXXxxx'
) AS f1
ON f1.uid = u.uid
LEFT JOIN
(
SELECT uid, fid, count(*) AS c2
FROM friends f
WHERE f.uid = 'xXXXxXXxxx'
) AS f2
ON f2.fid = u.uid;
выход:
+------------+------+------+
| user | c1 | c2 |
+------------+------+------+
| User1 | NULL | NULL |
| User2 | NULL | 1 |
| User3 | NULL | NULL |
| User4 | 1 | NULL |
| User5 | NULL | NULL |
+------------+------+------+
Почему я получаю NULL значение для подсчетов вместо 0? и есть ли лучший способ запустить этот запрос?
Пробовали ли вы использовать 'GROUP BY' ? –
@user да это ничего не изменило – razzak