vmware reviewit # mysql --version
mysql Ver 14.12 Distrib 5.0.19, for pc-linux-gnu (i686) using readline 5.1
Given two tables:
CREATE TABLE `logs` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`user_id` int(10) unsigned default '0',
`created_on` timestamp NOT NULL default
CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`body` text,
PRIMARY KEY (`id`),
) ENGINE=InnoDB;
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL auto_increment,
`username` varchar(30) NOT NULL,
`firstname` varchar(255) NOT NULL,
`lastname` varchar(255) NOT NULL,
`login_date` datetime default NULL,
`timestamp` timestamp NOT NULL default
CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
) ENGINE=InnoDB;
I want a query that will show me the username and the single most current
log body and date for every user.
I think I need to use a sub query, but I can't even get the very basic
example one to work...
http://dev.mysql.com/doc/refman/5.0/en/subqueries.html
mysql> SELECT * FROM logs WHERE user_id = (SELECT id FROM users);
ERROR 1242 (21000): Subquery returns more than 1 row
mysql> SELECT * FROM logs WHERE users.id = (SELECT id FROM users);
ERROR 1054 (42S22): Unknown column 'users.id' in 'where clause'
mysql> SELECT logs.*, users.username
-> FROM logs JOIN users ON users.id = logs.id
-> WHERE user_id = (SELECT id FROM users ORDER BY username);
ERROR 1242 (21000): Subquery returns more than 1 row
Duh. Isn't that the point?
Of course I want the subquery to return more than one row?!
I don't get it.
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]