I have these two tables:
Table imp_source:
x
Product class seq
5 5 1
5 3 2
5 16 3
8 1 1
8 4 2
Table imp_update:
Product class seq
5 6 4
8 1 6
8 4 2
8 23 3
9 3 1
I need to write a query to have this result:
Product class seq
5 5 1
5 3 2
5 16 3
5 6 4
8 1 6
8 4 2
8 23 3
9 3 1
- All values of imp_update
- The values of imp_source when there is no update for seq column of a product/class combination.
Update 1:
As you can see, the row in imp_source is not in result
product class seq
8 1 1
Because in imp_update the seq column of product/class combination is updated:
product class seq
8 1 6
Advertisement
Answer
We can use a union approach here with the help of exists logic:
SELECT s.Product, s.class, s.seq
FROM imp_source s
WHERE NOT EXISTS (SELECT 1 FROM imp_update u
WHERE u.Product = s.Product AND u.class = s.class)
UNION ALL
SELECT Product, class, seq
FROM imp_update
ORDER BY Product;