In sqlite3: copy a column from one table to another table -


there several other stackoverflow inquiries topic, none of them have satisfactory answer.

i have table beerreviews, missing column (review_text), , table beerreviewswithtext missing different column (brewery_name). otherwise table rows ordered same way, append brewery_name column beerreviews beerreviewswithtext.

i launch sqlite3 as:

sqlite3 beer_rewiews_with_text.sqlite 

then attach beer reviews table via:

attach 'beer_reviews.sqlite' br 

i added empty column beerreviewswithtext via:

alter table beerreviewswithtext add column beer_brewername varchar; 

multiple other questions suggest using insert fill column, appends new rows table, populating beer_brewername column.

insert beerreviewswithtext(beer_brewername) select brewery_name beerreviews; 

instead, update seems fill in null values, when run following (similar another question's answer) of beer_brewername values identical:

update beerreviewswithtext set beer_brewername=(select brewery_name br.beerreviews); 

this seems strange behavior since expected list of brewery names when run:

select brewery_name br.beerreviews limit 50; 

i'm new sqlite, can explain i'm doing incorrectly?

when use subquery expression, this:

update beerreviewswithtext set beer_brewername = (select brewery_name                        br.beerreviews) 

then first record returned subquery used.

you must write subquery returns single record, different record each record in outer table. called correlated subquery:

update beerreviewswithtext set beer_brewername = (select brewery_name                        br.beerreviews                        id = beerreviewswithtext.id) 

(this assumes have id column primary key.)


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -