Hallo
Ik heb voor mijn studie een SQL opdracht moeten maken. Nou heb ik die ingeleverd en heb de feedback gekregen dat de left join een ongebruikelijke methode is om dit probleem op te lossen. Ik kan zelf echter niet achter de gebruikelijke methode komen.
Dit is de situatie: er zijn 3 tabellen:
"product" met kolommen "maker" en "model"
"PC" met kolommen "model" en "price"
"laptop" met kolommen "model", "framesize" en "price"
En de opdracht was: Geef alle makers weer die laptops maken met een framesize>17 en die geen pc's maken.
Mijn code was:
Heeft iemand een idee hoe dit anders aangepakt kan worden, en waarom is die code gebruikelijker of beter?
Ik heb voor mijn studie een SQL opdracht moeten maken. Nou heb ik die ingeleverd en heb de feedback gekregen dat de left join een ongebruikelijke methode is om dit probleem op te lossen. Ik kan zelf echter niet achter de gebruikelijke methode komen.
Dit is de situatie: er zijn 3 tabellen:
"product" met kolommen "maker" en "model"
"PC" met kolommen "model" en "price"
"laptop" met kolommen "model", "framesize" en "price"
En de opdracht was: Geef alle makers weer die laptops maken met een framesize>17 en die geen pc's maken.
Mijn code was:
SQL:
1
2
3
4
5
6
7
| SELECT maker FROM product LEFT JOIN laptop ON laptop.model = product.model LEFT JOIN pc ON pc.model = product.model GROUP BY maker HAVING COUNT(pc.model) = 0 AND MIN(laptop.framesize) >= 17 |
Heeft iemand een idee hoe dit anders aangepakt kan worden, en waarom is die code gebruikelijker of beter?