I have 2 tables 'A' and 'B'. Both have a common column 'name' and linked with each other by a column 'id'. The column 'name' in the table A is empty whereas it has data in table B. My task is to fill all the data in that column from table B to table A with corresponding ids.
I'm using the following query:
UPDATE A
SET A.name = (SELECT B.name from B WHERE A.id = B.id)
WHERE EXISTS
(SELECT B.name from B)
As soon as I run the query in SQL developer, it just freezes and i have to force close it. Can anyone tell me what's wrong with the query?
I'm not sure from the above conversation whether you made any changes beyond indexing your data, but you should include a
WHERE EXISTS
clause as mentioned. The complete query should look like this:The
WHERE EXISTS
clause in your original query won't do much of anything except check to see if there is at least one non-NULL value ofname
inB
.Try this one instead:
Since you're using Oracle, here's the reference for IS NOT NULL.
Here's the SQL Fiddle so that you can play with it: http://sqlfiddle.com/#!4/a5ad0/3