БД mysql 4.0
имеются таблицы посещений конкретных страниц (pageid) по месяцам
month1 (id,pageid,visits,date) — таблица по датам за 1 месяц
month2 (id,pageid,visits,date) — таблица по датам за 2 месяц
CREATE TABLE `month1` (
`id` INT(12) UNSIGNED NOT NULL AUTO_INCREMENT,
`pageid` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '0',
`visits` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '0',
`datevisit` DATE NOT NULL DEFAULT '0000-00-00',
PRIMARY KEY (`id`),
INDEX `pageid` (`pageid`),
INDEX `datevisit` (`datevisit`)
)
CREATE TABLE `month2` (
`id` INT(12) UNSIGNED NOT NULL AUTO_INCREMENT,
`pageid` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '0',
`visits` SMALLINT(6) UNSIGNED NOT NULL DEFAULT '0',
`datevisit` DATE NOT NULL DEFAULT '0000-00-00',
PRIMARY KEY (`id`),
INDEX `pageid` (`pageid`),
INDEX `datevisit` (`datevisit`)
)
требуется создать
year1 (id,pageid,month1,month2) — суммарная статистика по месяцам
в итоговую таблицу year1 собрать сумму визитов по месяцам и записать в поля month1, month2
CREATE TABLE `year1` (
`id` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
`pageid` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'ID SRT',
`m1` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'январь',
`m2` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'февраль',
PRIMARY KEY (`id`),
INDEX `pageid` (`pageid`)
)
пробую такой запрос
INSERT INTO year1 (pageid,month1)
SELECT pageid, SUM(visits) as visits FROM month1 GROUP BY pageid;
UPDATE year1 as t1
SET t1.month2 = t2.visitsum
FROM (SELECT SUM(visits) as visitsum FROM month2 GROUP BY pageid) AS t2
WHERE (t2.pageid = t1.pageid)
insert проходит, но на update получаю ошибку
/* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM (SELECT SUM(visits) as visitsum FROM month2 GROUP' at line 3 */
подскажите, что не так ? или есть более оптимальный способ решения?