SELECT a.Price, a.AdvertismentId, AdHeader, sc.CategoryName AS SubCategory, mc.CategoryName AS MainCategory, count(*) AS Pics
FROM (Advertisment a LEFT JOIN AdImages i ON a.AdvertismentId = i.AdvertismentId), SubCategory sc, MainCategory mc
WHERE a. SubCategory = sc.CategoryId
AND sc.ParentCategory = mc.CategoryId
AND Pics > 1
GROUP BY AdvertismentId
ORDER BY AdCreated DESC
Men jag kan inte göra urval på "Pics", varför? Hur gör jag om jag vill plocka ut de poster som har (den temporära) kolumnen Pics > 1?
Nu kommer jag inte ihåg det exakta felmeddelandet (sitter på jobbet nu), men om jag tar bort denna rad:
AND Pics > 1 så funkar det... så det är endast den som ställer till det för mig.
Du menar att det ska finnas mer än en bild... jag tror att du måste ange det villkoret för GROUP BY. Samtidigt håller jag med @nders.
SELECT a.Price, a.AdvertismentId, AdHeader, sc.CategoryName AS SubCategory, mc.CategoryName AS MainCategory, count(*) AS Pics
FROM ((Advertisment a
LEFT JOIN AdImages i
ON a.AdvertismentId = i.AdvertismentId)
INNER JOIN SubCategory sc
ON sc.CategoryId = a.SubCategory)
INNER JOIN MainCategory mc
ON mc.CategoryId = sc.CategoryId
GROUP BY a.Price, a.AdvertismentId, AdHeader, sc.CategoryName, mc.CategoryName
HAVING Count(*) > 1
ORDER BY AdCreated DESC
Om den här frågan fungerar vete hånken, men ungefär så skulle den nog se ut om jag gjorde en liknande.