Hi

Update will never support group by clause, only supports group functions;
Try as:

       Update teams t
       inner join rider_team as rt on (rt.team_id=t.id)
       inner join participants as p on (p.rider_id=rt.rider_id)
       inner join races as r on (r.id=p.race_id)
       set t.created =  ( select min(starttime) from races);

If 'id' also to be updated, then try as:

       Update teams t
       inner join rider_team as rt on (rt.team_id=t.id)
       inner join participants as p on (p.rider_id=rt.rider_id)
       inner join races as r on (r.id=p.race_id)
set t.created = ( select min(starttime) from races), t.id=(select id from race where starttime=(select min(starttime) from race)) ;

Thanks
ViSolve DB Team.

---- Original Message ----- From: "Jørn Dahl-Stamnes" <[EMAIL PROTECTED]>
To: <mysql@lists.mysql.com>
Sent: Thursday, January 18, 2007 3:13 AM
Subject: Table update


I want to update new column in a table with data from other tables.
The following query give me the data:

select t.id,min(r.starttime)
 from teams as t
   inner join rider_team as rt on (rt.team_id=t.id)
   inner join participants as p on (p.rider_id=rt.rider_id)
   inner join races as r on (r.id=p.race_id)
group by t.id;

Is it possible to write a query that do a:

update teams set created=min(r.starttime) ...

which updates all records in the teams table based on first query?

Thanks

BTW:
mysql> select version();
+----------------+
| version()      |
+----------------+
| 4.1.8-standard |
+----------------+


--
Jørn Dahl-Stamnes
homepage: http://www.dahl-stamnes.net/dahls/

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]




--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to