?
Solved

How do I add new rows to a new table where there isn't an existing row that matches the foreign key?

Posted on 2008-10-03
4
Medium Priority
?
196 Views
Last Modified: 2010-04-21
I want to create records in a table with a value for every matching record in another table  but only if there isn't already a record.
So for the following :
Customers                  Locations      
CustomerID                  CustomerID      Location
1                  2      Unknown
2                  3      England
3                  4      Spain
4                        
5                        

I would like for the sql command to end up with the tables looking like this:
Customers                  Locations      
CustomerID                  CustomerID      Location
1                  1      Unknown
2                  2      Unknown
3                  3      England
4                  4      Spain
5                  5      Unknown
0
Comment
Question by:dgloveruk
  • 2
4 Comments
 
LVL 18

Accepted Solution

by:
UnifiedIS earned 1000 total points
ID: 22634044
I'm not following your table layouts but a general way to do this would be:
insert into tableA
(SELECT columns from tableB
WHERE key not in (SElect key from tableA))
0
 
LVL 61

Assisted Solution

by:Kevin Cross
Kevin Cross earned 1000 total points
ID: 22634050
Something like this.  You can replace with actual columns/values you want.
INSERT INTO Locations (CustomerID, Location)
SELECT CustomerID, 'Unknown'
FROM Customers
WHERE CustomerID NOT IN (SELECT CustomerID FROM Locations)
 
-- OR
INSERT INTO Locations (CustomerID, Location)
SELECT CustomerID, 'Unknown'
FROM Customers c
WHERE NOT EXISTS (SELECT 1 FROM Locations l WHERE l.CustomerID = c.CustomerID)

Open in new window

0
 
LVL 61

Expert Comment

by:Kevin Cross
ID: 22634065
Guess, we had the same thought, UnifiedIS. :)
0
 

Author Closing Comment

by:dgloveruk
ID: 31502741
Thanks guys, I split the points on this occasion because you actually seemed to answer simultaneously!
Thanks again,
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Composite queries are used to retrieve the results from joining multiple queries after applying any filters. UNION, INTERSECT, MINUS, and UNION ALL are some of the operators used to get certain desired results.​
It is possible to export the data of a SQL Table in SSMS and generate INSERT statements. It's neatly tucked away in the generate scripts option of a database.
Is your OST file inaccessible, Need to transfer OST file from one computer to another? Want to convert OST file to PST? If the answer to any of the above question is yes, then look no further. With the help of Stellar OST to PST Converter, you can e…
With just a little bit of  SQL and VBA, many doors open to cool things like synchronize a list box to display data relevant to other information on a form.  If you have never written code or looked at an SQL statement before, no problem! ...  give i…

615 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question