Try this

UPDATE table1
SET column3 = (
        SELECT column3
        FROM table2
        WHERE table2.column1 = table1.column1
          AND table2.column2 = table1.column2)

HTH,

Sam 


-------------------------------------------
We're Hiring! Seeking a passionate developer to join our team building
products. Position is in the Washington D.C. metro area. If interested
contact [EMAIL PROTECTED]
 
-----Original Message-----
From: Brian Albert [mailto:[EMAIL PROTECTED] 
Sent: Friday, May 25, 2007 11:30 AM
To: sqlite-users@sqlite.org
Subject: [sqlite] Why doesn't this UPDATE work?

I've been struggling with the following:

update table1 set column3 = (select i.colum3 from table2 i, table1 t  
where t.column1 = i.column1 and t.column2 = i.column2)

Reading the manual and this list I learned that this statement will  
grab the first result of my sub-select and populate it in every row  
(cruel, but I can see the logic).  However what I want is for the  
different values that I get from the sub-select to be entered into  
the appropriate rows of column3.

I looked at using INSERT or REPLACE but the subselect (when run  
standalone) returns 34001 rows, and table1 has 34004 rows - the  
result is all 125000 rows of table2 being appended to table1 (with  
NULLs in all but column3).

Neither table has a primary key and I'm running 3.3.17 on MacOSX 10.4.9

Is UPDATE the correct way to do this? Also, is there an SQLITE  
chatroom on IRC?

Many thanks in advance.


----------------------------------------------------------------------------
-
To unsubscribe, send email to [EMAIL PROTECTED]
----------------------------------------------------------------------------
-


-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to