Ik ben momenteel met een webshop bezig en wil nu graag gerelateerde producten laten zien aan bezoekers, met als simpel doel dat ze meer producten bekijken en dus meer kopen. Het ontbreekt echter aan van tags, goede omschrijvingen of een logische indeling. Het is dus niet mogelijk om op basis van dat soort zaken de gebruiker iets voor te schotelen. Ik zit dus te denken aan aan het principe dat Bol.com o.a. ook hanteert: op basis van eerder koopgedrag van anderen.
Ik heb (versimpeld weergegeven) een koppeltabel KlantBestelling (klantId, productId, aantal) waar ik iets mee wil. Eerst op basis van het huidige artikel kijken wíe dat artikel allemaal besteld heeft (SELECT klantId FROM KlantBestelling WHERE productId = 123). Met die lijst (laten we zeggen dat klantnr's 1, 2 en 4 dat artikel ook hebben hebben besteld) kan ik weer kijken welke producten onder die klanten populair zijn: SELECT productId, SUM(aantal) FROM KlantBestelling WHERE klantID IN (1, 2, 4) GROUP BY productId.
Ik wil ze echter ophalen met slechts één query (en ik vermoed dat dat geen utopie is).
Ik heb het ook al met een subquery geprobeerd, maar die subquery krijgt meerdere rijen terug, en werkt dus ook niet: SELECT productId, SUM(aantal) FROM `KlantBestelling ` WHERE klantId = (SELECT klantId FROM KlantBestelling WHERE productId= 123)
Wie helpt me uit de brand?
Ik heb (versimpeld weergegeven) een koppeltabel KlantBestelling (klantId, productId, aantal) waar ik iets mee wil. Eerst op basis van het huidige artikel kijken wíe dat artikel allemaal besteld heeft (SELECT klantId FROM KlantBestelling WHERE productId = 123). Met die lijst (laten we zeggen dat klantnr's 1, 2 en 4 dat artikel ook hebben hebben besteld) kan ik weer kijken welke producten onder die klanten populair zijn: SELECT productId, SUM(aantal) FROM KlantBestelling WHERE klantID IN (1, 2, 4) GROUP BY productId.
Ik wil ze echter ophalen met slechts één query (en ik vermoed dat dat geen utopie is).
Ik heb het ook al met een subquery geprobeerd, maar die subquery krijgt meerdere rijen terug, en werkt dus ook niet: SELECT productId, SUM(aantal) FROM `KlantBestelling ` WHERE klantId = (SELECT klantId FROM KlantBestelling WHERE productId= 123)
Wie helpt me uit de brand?