Hej.
Jeg har lavet en søgning til en shop, og jeg er ved at have en meget lang sql query til at sortere varelisterne med, så jeg tænkte på om der var nogle kloge hoveder her inde som måske kunne hjælpe med at optimere den lidt.
Her er min query
- SELECT pg.ID, pg.sort, pg.prodCatID, pg.name, pg.link, pg.title, pg.internalID, pg.parentID, p.ID AS Expr1, p.ProductID, p.ProductNumber, p.ProductName, p.Image,
- p.ShortDescription, p.LongDescription, p.InternalNumber, p.UnitPrice, p.isMaster, p.ProductGroup, p.ProductHidden, p.ProductMasterID, p.Stock, p.SpecialOffer
- FROM productgrp AS pg CROSS JOIN
- product AS p
- WHERE (CHARINDEX(',' + CAST(pg.prodCatID AS varchar) + ',', p.ProductGroup) > 0) AND (pg.internalID = 858) AND (p.ProductID IN
- (SELECT productID
- FROM product_keyword
- WHERE (keywordID = 88))) AND (p.ProductID IN
- (SELECT productID
- FROM product_keyword AS product_keyword_3
- WHERE (keywordID = 68))) AND (p.isMaster = 1) AND EXISTS
- (SELECT Stock
- FROM product AS p2
- WHERE (ProductMasterID = p.ProductNumber) AND (Stock > 0) AND (ProductID IN
- (SELECT productID
- FROM product_keyword AS product_keyword_2
- WHERE (keywordID = 88))) OR (ProductID IN
- (SELECT productID
- FROM product_keyword AS product_keyword_1
- WHERE (keywordID = 68))))
Det som man kan er at man via nogle selectboxe kan sorte en vareliste, og så får man vidst de produkter der findes i den valgte farve, størrelse osv. samtidig tjekker den også om produktet er på lager i den størrelse man godt vil have, ellers skal det nemlig ikke vise.
Den virker i grunden fint nok, men det kunne jo være det kunne gøres på en nemmere måde og med mindre kode