Различные результаты в MySQL 5.0 и 5.1

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 (может из-за этого глюк?)
 

svetasmirnova

маленький монстрик
Приведи вывод SHOW CREATE TABLE user, SHOW CREATE TABLE games, точную версию MySQL 5.1
 

nut

Новичок
CREATE TABLE `user` (
`uid` int(11) NOT NULL AUTO_INCREMENT,
`ulogin` text NOT NULL,
`passwd` text NOT NULL,
PRIMARY KEY (`uid`),
) ENGINE=MyISAM DEFAULT CHARSET=cp1251

CREATE TABLE `games` (
`gid` int(11) NOT NULL AUTO_INCREMENT,
`gdate` date NOT NULL,
`gtime` time NOT NULL,
PRIMARY KEY (`gid`)
) ENGINE=MyISAM;

mysql Ver 14.12 Distrib 5.1.11-beta, for portbld-freebsd6.1 (i386) using 5.0
 

svetasmirnova

маленький монстрик
Не могу повторить на тестовых данных.

Обновись до последней 5.1.19 и если сможешь повторить, приведи вывод

SELECT * 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

и

select dater from answers WHERE a.gid=357
 
Сверху