Consider the following two tables
Table 1
ID DATA 1 'A' 2 'B' 3 'C' 4 'D' 5 'E' 6 'F'
Table 2
ID DATA 2 'G' 3 'F' 4 'Q'
How do I insert data into Table 1 from Table 2 where Table 2 doesn't have Table 1's ID?
In other words, I'd like the following result:
Table 2
ID DATA 1 'A' 2 'G' 3 'F' 4 'Q' 5 'E' 6 'F'
The wording in your question a little bit confusing because you first ask How do I insert data into Table 1 from Table 2 but then you're showing the desired result for Table2.
Now if you want to insert rows from table1 into table2 with ids that doesn't exist in table2 you can do it this way
INSERT INTO Table2 (id, data)
SELECT id, data
FROM Table1 t
WHERE NOT EXISTS
(
SELECT *
FROM Table2
WHERE id = t.id
)
Here is SQLFiddle demo
or
INSERT INTO Table2 (id, data)
SELECT t1.id, t1.data
FROM Table1 t1 LEFT JOIN Table2 t2
ON t1.id = t2.id
WHERE t2.id IS NULL;
Here is SQLFiddle demo
Outcome (in both cases):
| ID | DATA | |----|------| | 1 | A | | 2 | G | | 3 | F | | 4 | Q | | 5 | E | | 6 | F |
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With