ыы
CREATE TABLE db_user (
db_user_id int(10) unsigned NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
balance decimal(10,2) NOT NULL,
PRIMARY KEY (db_user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
CREATE TABLE db_comment (
db_comment_id int(10) unsigned NOT NULL AUTO_INCREMENT,
db_user_id int(10) unsigned NOT NULL,
text text NOT NULL,
PRIMARY KEY (db_comment_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
INSERT INTO db_user(name,balance) VALUES ('test', 107.11);
INSERT INTO db_user(name,balance) VALUES ('test1', 305.11);
INSERT INTO db_comment(db_user_id,text) VALUES (1,'test');
INSERT INTO db_comment(db_user_id,text) VALUES(1,'test1');
INSERT INTO db_comment(db_user_id,text) VALUES(2,'test');
INSERT INTO db_comment(db_user_id,text) VALUES(2,'test2')
Я пытаюсь выбрать имя и текст последнего комментария пользователя вот так:
SELECT T.name AS 'username',T.text AS 'usercomment' FROM (SELECT MAX(db_comment_id), U.name, C.text FROM db_user AS U JOIN db_comment AS C ON U.db_user_id = C.db_user_id GROUP BY name) AS T
где последний комментарий определяется максимальным id в каждой группе. Но MAX возвращает обособленный столбец, где id в нем не является id той записи, рядом с которой он стоит. Почему так, и как будет выглядеть итоговый запрос? MySQL 5.1