This is actually one of the more common MySQL problems which doesn't have an
easy answer.

The best I can offer is a bit of a kludge... but it does work.  The trick is
to use the Replace...Select command.  The problem with this is that you can
not select from the table you are replacing.  But if you make a temporary
copy of the tabe you are updating, then what you are wanting to do can be
done with

$query = "create temporary table temp select * from table1; replace table1
select temp.id,table2.value2,temp.colname from table2 left join temp
using(id)";

You just have to make sure all of the columns in table1 you don't want
changed appear as temp.colname.  The temp table will only exist as long as
the thread does, since it was created with the temporary keyword.

Sheridan Saint-Michel
Website Administrator
FoxJet, an ITW Company
www.foxjet.com


----- Original Message -----
From: "m0sh3" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, November 02, 2001 5:14 AM
Subject: [PHP-DB] UPDATE table1 FROM table2


> In MySQL 3.23, how to update one table using information from another
table.
>
> update table1 set value1=t2.value2
> from table1 as t inner join table2 as t1 using(pk_key) ???
>
> or
>
> update table1 as t1 inner join table2 as t2 using(pk_key)
> set t1.value1=t2.value2 ???
>
> Is it possible at all?
>
> Thank you
>
>
>
> --
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to