Recosh
@Recosh
Программист студент

Как правильно работать с NULL полями после JOIN при GROUP BY?

Подскажите, как добиться верных результатов. Есть таблички:
Для удобства залил в песочницу 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 количеству записей?
  • Вопрос задан
  • 541 просмотр
Пригласить эксперта
Ответы на вопрос 2
@RidgeA
COUNT(app.id) as `c`
Ответ написан
@redya69
Так?)
SELECT 
  sour.source, 
  COUNT(app.sour_id) as `c` 
FROM `sour` 
  LEFT JOIN `app` ON sour.id = app.sour_id AND app.id > 2
  GROUP BY(sour.id);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы