nut
Новичок
Различные результаты в MySQL 5.0 и 5.1
Привет всем!
таблица
CREATE TABLE `poll`.`answers` (
`aid` int(11) NOT NULL auto_increment,
`gid` int(11) NOT NULL,
`uid` int(11) NOT NULL,
`qid` int(11) NOT NULL default '0',
`choice` int(11) NOT NULL,
`dater` timestamp NOT NULL default CURRENT_TIMESTAMP,
`rightans` int(11) NOT NULL,
PRIMARY KEY (`aid`),
UNIQUE KEY `Uniq_answer` (`gid`,`uid`,`qid`),
KEY `user_game` (`gid`,`uid`),
KEY `qid` (`qid`),
KEY `right` (`rightans`)
) ENGINE=MyISAM;
такой сложный запрос идет:
SELECT
(select dater from answers WHERE a.gid=357 and uid=a.uid order by dater desc limit 0,1) as dater2,
UNIX_TIMESTAMP((select dater from answers WHERE a.gid=357 and uid=a.uid order by dater desc limit 0,1)) - UNIX_TIMESTAMP(concat(gdate,' ',gtime) + INTERVAL 180 SECOND) as time,
(select dater from answers WHERE a.gid=357 and uid=a.uid order by dater desc limit 1,1) as dater3,
count(aid) as answ,a.uid ,ulogin
FROM answers a
LEFT JOIN user u ON (a.uid=u.uid)
LEFT JOIN games g ON (a.gid=g.gid)
WHERE a.gid=357 and rightans=choice
group by uid
order by answ desc, dater2,dater3
глюк в выделенном, если ставлю limit 0,1 вместо limit 1,1 то все ок, а так пишет:
Subquery returns more than 1 row
причем если uid=a.uid заменить на uid=100 (например), то тоже все ок.
На другом серваке стоял MySQL 5,0 и все рабоотало нормально, на 5,1 не работает.
Помогите плиз!!!
-~{}~ 23.06.07 13:44:
еще одна деталь!!!
версия 5,0 релиз, а 5,1 beta (может из-за этого глюк?)
Привет всем!
таблица
CREATE TABLE `poll`.`answers` (
`aid` int(11) NOT NULL auto_increment,
`gid` int(11) NOT NULL,
`uid` int(11) NOT NULL,
`qid` int(11) NOT NULL default '0',
`choice` int(11) NOT NULL,
`dater` timestamp NOT NULL default CURRENT_TIMESTAMP,
`rightans` int(11) NOT NULL,
PRIMARY KEY (`aid`),
UNIQUE KEY `Uniq_answer` (`gid`,`uid`,`qid`),
KEY `user_game` (`gid`,`uid`),
KEY `qid` (`qid`),
KEY `right` (`rightans`)
) ENGINE=MyISAM;
такой сложный запрос идет:
SELECT
(select dater from answers WHERE a.gid=357 and uid=a.uid order by dater desc limit 0,1) as dater2,
UNIX_TIMESTAMP((select dater from answers WHERE a.gid=357 and uid=a.uid order by dater desc limit 0,1)) - UNIX_TIMESTAMP(concat(gdate,' ',gtime) + INTERVAL 180 SECOND) as time,
(select dater from answers WHERE a.gid=357 and uid=a.uid order by dater desc limit 1,1) as dater3,
count(aid) as answ,a.uid ,ulogin
FROM answers a
LEFT JOIN user u ON (a.uid=u.uid)
LEFT JOIN games g ON (a.gid=g.gid)
WHERE a.gid=357 and rightans=choice
group by uid
order by answ desc, dater2,dater3
глюк в выделенном, если ставлю limit 0,1 вместо limit 1,1 то все ок, а так пишет:
Subquery returns more than 1 row
причем если uid=a.uid заменить на uid=100 (например), то тоже все ок.
На другом серваке стоял MySQL 5,0 и все рабоотало нормально, на 5,1 не работает.
Помогите плиз!!!
-~{}~ 23.06.07 13:44:
еще одна деталь!!!
версия 5,0 релиз, а 5,1 beta (может из-за этого глюк?)