How does one copy the contents of a column from one
table into another table (not altering the table, just 
overwriting an existing column in the second table)?

For example say I have two tables A and B and I want to
overwrite the contents of B.y with A.x:

  create table A(i, x);
  create table B(i, y);

  insert into A('i', 'x') values (1, 0.1);
  insert into A('i', 'x') values (2, 0.2);
  insert into A('i', 'x') values (3, 0.3);

  insert into B('i', 'y') values (1, -11.1);
  insert into B('i', 'y') values (2, -22.2);
  insert into B('i', 'y') values (3, -33.3);

I tried the obvious with:

  update B set y=(select x from A);

but this ends up duplicating the contents of only
the first row of A.x into B.y:

  select * from B;

i           y
----------  ----------
1           0.1
2           0.1
3           0.1

If I work only with one table then the update works as expected:

  update B set y=i;
  
  select * from B;

i           y
----------  ----------
1           1
2           2
3           3

Is there an undocumented limitation on sqlite's update?
I'm using version 2.8.13.      -- Al

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to