# Antwoorden Inner en Outer Joins - open! ``` --- (1) --- SELECT p.naam product, a.naam artikel, aantal, prijs*aantal totaalprijs FROM product p INNER JOIN product_bestaat_uit k on k.product_id=p.id INNER JOIN artikel a on a.id=k.artikel_id order by .,naam bovenkast - zijpaneel - 4 - 28 bovenkast - kastplank - 2 - 8 ... --- (2) --- SELECT p.naam, sum(prijs*aantal) totaalprijs FROM product p INNER JOIN product_bestaat_uit k on k.product_id=p.id INNER JOIN artikel a on a.id=k.artikel_id group by p.naam Bovenkast - 36 Deur - 20 Lade - 32 Onderkast 89 --- (3) --- SELECT p.naam, sum(aantal) aantal FROM product p INNER JOIN product_bestaat_uit k on k.product_id=p.id INNER JOIN artikel a on a.id=k.artikel_id group by p.naam Bovenkast - 6 Deur - 4 Lade - 7 Onderkast - 8 --- (4) --- SELECT p.naam, a.naam, sum(aantal) aantal FROM product p INNER JOIN product_bestaat_uit k on k.product_id=p.id INNER JOIN artikel a on a.id=k.artikel_id group by p.naam, a.naam Bovenkast - zijpaneel - 4 Bovenkast - kastplank - 2 Deur - front - 2 ... --- (5) --- SELECT p.naam, a.naam, aantal FROM product p LEFT OUTER JOIN product_bestaat_uit k on k.product_id=p.id LEFT OUTER JOIN artikel a on a.id=k.artikel_id Kan ook via product bestaat uit en dan een RIGHT OUTER Join met product en INNER JOIN met artikel. Resultaat: In ieder geval wipstoel erbij (6) SELECT p.naam, a.naam, aantal FROM product p LEFT OUTER JOIN product_bestaat_uit k on k.product_id=p.id LEFT OUTER JOIN artikel a on a.id=k.artikel_id where a.naam is NULL Resultaat: Alleen de wipstoel (7) SELECT p.naam, a.naam, aantal FROM product p LEFT OUTER JOIN product_bestaat_uit k on k.product_id=p.id LEFT OUTER JOIN artikel a on a.id=k.artikel_id where a.naam is NULL and k.aantal is not NULL Lade 2 Deur 6 (8) onduidelijk --- (9) --- SELECT * FROM artikel a WHERE a.id not IN (select product_bestaat_uit.artikel_id from product_bestaat_uit) of SELECT * FROM artikel a LEFT OUTER JOIN product_bestaat_uit on product_bestaat_uit.artikel_id=a.id WHERE product_bestaat_uit.product_id is NULL 1061 afdekplank 3 1082 dwars balk 5 (10) SELECT p.naam product, a.naam artikel , sum(aantal) aantal FROM product p LEFT OUTER JOIN product_bestaat_uit k on k.product_id=p.id LEFT OUTER JOIN artikel a on a.id=k.artikel_id group by p.naam, a.naam UNION SELECT p.naam product, a.naam artikel, sum(aantal) aantal FROM product p RIGHT OUTER JOIN product_bestaat_uit k on k.product_id=p.id RIGHT OUTER JOIN artikel a on a.id=k.artikel_id group by p.naam, a.naam ```