Добрый день, такая задача.
Есть две таблицы
1. bn_ banner_load: (количество загрузок баннера)
CREATE TABLE `bn_ banner_load` (
`id_banner` int(5) NOT NULL,
`page_action` text,
`load_time` datetime NOT NULL,
KEY `load_time` (`load_time`),
KEY `id_banner` (`id_banner`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2. bn_banner_stat (количество переходов по баннеру)
CREATE TABLE `bn_banner_stat` (
`id_banner` int(5) NOT NULL,
`page_action` varchar(300) NOT NULL,
`time_action` datetime default NULL,
KEY `time_action` (`time_action`),
KEY `id_banner` (`id_banner`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Хотелось бы составить запрос который бы выбирал из этих таблиц
Количество загрузок , количество переходов по данной страничке за определённый промежуток времени
Например делаю так:
SELECT COUNT(id_banner) as count, `page_action` FROM `bn_regh_banner_load`
WHERE DAY(`load_time`) = 31 AND MONTH(load_time)=05 AND YEAR(load_time)=2010 AND `id_banner` = 1
GROUP BY `page_action`
И
SELECT COUNT(id_banner) as count, `page_action` FROM `bn_regh_banner_stat`
WHERE DAY(`time_action`) = 31 AND MONTH(`time_action`)=05 AND YEAR(`time_action`)=2010 AND `id_banner` = 1
GROUP BY `page_action`
Работают нормально…
Но проблема в том что нужно сделать выборку одним запросом и что бы выборка шла только по тем страничкам по которым был сделан переход( bn_banner_stat). Т.к за день баннер может быть загружен на 1000 странницах, а кликнули по баннеру только на 10 .
И в конечном итоге получить
id_banner count_load count_click page_action 1 | 500 | 2 | http://site/my_page.html