Пишу систему подсчета и перераспределения трафика.
В базе(mysql) имеются таблицы sites
, ins
, outs
, clicks
.
Таблица sites
иммет поля id
и domain
Таблицы ins
outs
clicks
имеют поля site_id
created
Возможно ли одним запросом получить все данные из таблицы sites
+ получить количество ins
, outs
, clicks
, созданные за последние 3600 и 86400 секунд, принадлежащие каждому из сайтов?
Мне кажется проще будет использовать подзапросы с выборкой количества
Основной запрос:
SELECT `sites`.*,
(<SUB_SELECT>) AS `ins_count`,
(<SUB_SELECT>) AS `outs_count`,
(<SUB_SELECT>) AS `click_count`
FROM `sites`
WHERE 1;
Подзапрос <SUB_SELECT>
, например для количества кликов за последние 3600 секунд:
SELECT COUNT(*) FROM `clicks`
WHERE `site_id` = `sites`.`id`
AND `created` BETWEEN UNIX_TIMESTAMP()-3600 AND UNIX_TIMESTAMP()
Специфика проверки времени "за последние 3600 секунд" зависит от формата поля created
, оно может быть TIMESTAMP или INT или что-то еще, смотрите сами, как у вас
Полный запрос выглядит ужасно и не понятно, но я рискну его привести:
SELECT `sites`.*,
(
SELECT COUNT(*) FROM `ins`
WHERE `site_id` = `sites`.`id`
AND `created` BETWEEN UNIX_TIMESTAMP()-3600 AND UNIX_TIMESTAMP()
) AS `ins_count`,
(
SELECT COUNT(*) FROM `outs`
WHERE `site_id` = `sites`.`id`
AND `created` BETWEEN UNIX_TIMESTAMP()-3600 AND UNIX_TIMESTAMP()
) AS `outs_count`,
(
SELECT COUNT(*) FROM `clicks`
WHERE `site_id` = `sites`.`id`
AND `created` BETWEEN UNIX_TIMESTAMP()-3600 AND UNIX_TIMESTAMP()
) AS `click_count`
FROM `sites`
WHERE 1;
В итоге имеем в результате все поля sites
и 3 дополнительные поля из подзапросов с количеством. Если нужно еще три поля с количеством за последние 86400, вы знаете что делать
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Наткнулся в одном видео на пример, когда количество товаров в категориях для меню доставалось из elasticsearch:
Есть двойной цикл for с проверкой внутри на совпадение с заранее добытым массивом id
Добавил вторую форму, подскажите, как в файле Appxaml добавить стиль на вторую форму? P