I have two tables: IsCompanyValid
and CompanyData
.
IsCompanyValid
:
Company IsValid
A TRUE
B TRUE
C TRUE
D FALSE
CompanyData
:
Company Data
A Data1
A Data1
A Data1
B Data1
B Data1
C Data1
D Data1
I want to insert Data called 'testData' into CompanyData
, for each unique company that is valid. So I want the CompanyData
to look like this:
CompanyData
:
Company Data
A Data1
A Data1
A Data1
B Data1
B Data1
C Data1
D Data1
A testData
B testData
C testData
Here is the query I wrote:
INSERT into CompanyData (Company, Data)
SELECT
distinct Company,
'testData'
FROM CompanyData
-- Make sure the data we are inserting is for valid companies only
WHERE Company in
(
select Company from IsCompanyValid
where IsValid = true
)
AND 'testData' not in
(
select Data from CompanyData
);
Now this works fine. But if the CompanyData
table was slightly modified, so that 'testData' already exists, this query will no longer work. For example:
CompanyData
:
Company Data
A Data1
A Data1
A Data1
B Data1
B Data1
C Data1
D Data1
A testData
This query will no longer insert for B and C. I'm not sure how I can modify my query to insert for B and C.
The real data is much larger, so I need to make my solution generalized.