Medlem
|
|
Reg.datum: Aug 2005
Inlägg: 205
|
|
Medlem
Reg.datum: Aug 2005
Inlägg: 205
|
Jo jag hänger nog med på vad du menar.
Det kan dock bli ett problem då en del ordrar bara har en produkt beställda. Om man har "otur" så är det dessa som plockas ut i den första queryn och då fungerar det inte.
Nu ser queryn som jag använder för tillfället ut så här:
SELECT count(t2.itemID) as num, t2.itemID as id, t3.name as name, t3.price as price, t3.offer as offer FROM orderItem as t1, orderItem as t2 LEFT JOIN boardgame as t3 ON t3.id = t2.itemID WHERE t1.itemType = 1 AND t2.itemType = 1 AND t1.itemID = \"$itemID\" AND t1.orderID = t2.orderID AND t1.itemID != t2.itemID GROUP BY t2.itemID ORDER BY num DESC, RAND() LIMIT 5;
Med denna query så får jag ut de vanligast "också beställda" produkterna och slumpar deras ordning om fler är lika vanliga. Men som sagt tror jag inte denna method är "bra" och skulle gärna vilja ha hjälp att förbättra det om det är möjligt? Skulle även gärna ha samma resultat, alltså att man listar de vanligaste "också beställda" produkterna.
Det kanske är så att min metod inte är så farlig? Jag har ingen vidare koll på hur "jobbiga" min query är för databasen och servern?
Säg att det kanske är totalt 2000 rader i orderItem. Detta skulle enligt min beräkning ge typ 4000000 rader att gå igenom? låter på tok för mycket för att vara ok?
|