Ik heb een ordersysteem gebouwd, resulterende in o.m. de volgende tabellen:
Mijn probleem is: dit lukt mij niet. Dit is mijn query tot zover
Hij lijkt het goed te doen, maar geeft voor ieder product waarvan een alternatieve naam is opgegeven in de tabel productenLabels twee resultaten:
Hoe kan dit?
- orders (ID, klantId)
- orderregels (ID, orderId, productId)
- klanten (ID, naam)
- producten (ID, naam, prijs)
- productenLabels (klantId, productId, naam)
code:
1
| [orderregelId][productId][klant-productnaam] |
Mijn probleem is: dit lukt mij niet. Dit is mijn query tot zover
SQL:
1
2
3
4
| SELECT DISTINCT ID, orderregelsproducten.productId, IF(productenlabels.klantId=orders.klantId, productenlabels.naam, null) AS 'klantProductNaam' FROM orders, orderregelsproducten LEFT JOIN productenlabels ON (productenlabels.productId = orderregelsproducten.productId) WHERE orders.ID = orderregelsproducten.orderId ORDER BY productId |
Hij lijkt het goed te doen, maar geeft voor ieder product waarvan een alternatieve naam is opgegeven in de tabel productenLabels twee resultaten:
code:
1
2
3
4
5
6
7
| [orderregelId][productId][klant-productnaam]
1 3 Appel
1 3 NULL
2 4 Ei
2 4 NULL
3 34 NULL
4 22 NULL |
Hoe kan dit?