Задать вопрос
wonchoe
@wonchoe
кодер

Как сформировать запрос с 3х таблиц?

есть 3 таблицы, поля у них одинаковы, есть поле дата, как посчитать и сгрупировать кол-во записей по дате?
counter
init
response

у меня получилось с 1й таблицей
SELECT COUNT(*) as cnt, date as cdate FROM init GROUP BY date ORDER BY date DESC LIMIT 10
результат
434c1c47d1.jpg
но мне надо чтобы вывело что-то подобное, но с 3х таблиц
7e2468897a83453e9a0c7e6da8000564.png
и соответственно если в таблице 2 нет такой даты как в таблице 1, то вывело просто 0
  • Вопрос задан
  • 140 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Java-разработчик
    9 месяцев
    Далее
  • GB (GeekBrains)
    Профессия Python-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `dates`.`date`, IFNULL(`t1`.`count`, 0) AS `cnt1`, 
       IFNULL(`t2`.`count`, 0) AS `cnt2`, IFNULL(`t3`.`count`, 0) AS `cnt3`
    FROM (
        SELECT `date` FROM `table1`
            UNION SELECT `date` FROM `table2`
            UNION SELECT `date` FROM `table3`
    ) AS `dates`
    LEFT JOIN (
        SELECT `date`, COUNT(*) AS `count` FROM `table1` GROUP BY `date`
    ) AS `t1` ON `t1`.`date` = `dates`.`date`
    LEFT JOIN (
        SELECT `date`, COUNT(*) AS `count` FROM `table2` GROUP BY `date`
    ) AS `t1` ON `t2`.`date` = `dates`.`date`
    LEFT JOIN (
        SELECT `date`, COUNT(*) AS `count` FROM `table3` GROUP BY `date`
    ) AS `t1` ON `t3`.`date` = `dates`.`date`
    ORDER BY `dates`.`date`
Ответ написан
Ваш ответ на вопрос

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

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