Hmm, de titel is niet echt super, maar het probleem wel 
Ik heb de volgende drie tabellen:
Coverages
coverageid
name
Product_Coverages
coveragecombinationid
productid
CoverageCombinations
coveragecombinationid
coverageid
Een product heeft dus een aantal coveragecombinations. Die weer bestaan uit een of meerdere coverages. In bovenstaande voorbeeld heeft dus "product 1" twee coveragecombinationid's (1 en 2) Dat betekend dat dit product gekozen mag worden als er een tekort is in (Overlijden box 1 en AO box 1) of (Overlijden box 1) Maar dus niet als er alleen een AO box 1 tekort is. Dat laatste is het probleem want ik krijg het met joins niet voor elkaar om alleen de producten te tonen die wel afgesloten mogen worden als je alleen een AO box 1 tekort hebt
Onderstaande is een voorbeeld van hoe het niet werkt. Nu krijg je alle producten te zien die ergens in een coveragecombination AO box 1 hebben zitten. Maar je haalt niet degene eruit die alleen maar dat hebben.
)
Ik heb de volgende drie tabellen:
Coverages
coverageid
name
| id | naam |
| 1 | Overlijden box 1 |
| 2 | Overlijden box 3 |
| 3 | AO box 1 |
| 4 | AO box 3 |
Product_Coverages
coveragecombinationid
productid
| Coveragecombinationid | productid |
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
CoverageCombinations
coveragecombinationid
coverageid
| coveragecombinationid | coverageid |
| 1 | 1 |
| 1 | 3 |
| 2 | 1 |
| 3 | 4 |
| 4 | 4 |
Een product heeft dus een aantal coveragecombinations. Die weer bestaan uit een of meerdere coverages. In bovenstaande voorbeeld heeft dus "product 1" twee coveragecombinationid's (1 en 2) Dat betekend dat dit product gekozen mag worden als er een tekort is in (Overlijden box 1 en AO box 1) of (Overlijden box 1) Maar dus niet als er alleen een AO box 1 tekort is. Dat laatste is het probleem want ik krijg het met joins niet voor elkaar om alleen de producten te tonen die wel afgesloten mogen worden als je alleen een AO box 1 tekort hebt
Onderstaande is een voorbeeld van hoe het niet werkt. Nu krijg je alle producten te zien die ergens in een coveragecombination AO box 1 hebben zitten. Maar je haalt niet degene eruit die alleen maar dat hebben.
SQL:
Is het mogelijk om dit in SQL voor elkaar te krijgen, of kan ik dit beter oplossen in code (dan gaat het wel lukken, maar ik vind het leuker/mooier in SQL 1
2
3
4
5
| select p.productid from products p inner join product_coverages pcv on p.productid = pcv.productid inner join coverages_combinations pc on pcv.coveragecombinationid = pc.coveragecombinationid inner join coverages c on pc.coverageid = c.coverageid where c.coverageid = 3 |