Подскажите, как добиться верных результатов. Есть таблички:
Для удобства залил в песочницу
sqlfiddle.com/#!9/1e9b8c/19
CREATE TABLE sour
(`id` int, `source` varchar(7), `description` varchar(55))
;
INSERT INTO sour
(`id`, `source`, `description`)
VALUES
(1, 'raz', 'aza1'),
(2, 'dva', 'aza2'),
(3, 'tri', 'aza3'),
(4, 'chetire', 'aza4')
;
CREATE TABLE app
(`id` int, `sour_id` int, `name` varchar(55))
;
INSERT INTO app
(`id`, `sour_id`, `name`)
VALUES
(1, 1, 'zzz1'),
(2, 3, 'zzz2'),
(3, 3, 'zzz3'),
(4, 1, 'zzz4'),
(5, 3, 'zzz5'),
(6, 4, 'zzz6')
;
При выполнении такого запроса
SELECT
sour.source,
COUNT(app.sour_id) as `c`
FROM `app`
RIGHT JOIN `sour` ON sour.id = app.sour_id
WHERE app.id > 2
GROUP BY(app.sour_id);
Получаю
raz 1
tri 2
chetire 1
Как вывести что dva = 0 количеству записей?