webForumDet fria alternativet
Logga in / Bli medlem

Problem med en fråga

Databaser & SQL

6 svar · 267 visningar · startad av mattiasjarnhall

Medlem sedan apr. 2001126 inlägg
Trådstart#1

Jag försöker köra följande fråga:

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?

Kör mot en MySQL databas!

Medlem sedan juni 200032 967 inlägg
#2

Du måste nog ha med alla fält som inte är beräknade i GROUP BY.

Vad får du för felmeddelande?

Medlem sedan apr. 2001126 inlägg
#3

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.

Medlem sedan dec. 20003 887 inlägg
#4

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.

Medlem sedan apr. 2001126 inlägg
#5

Åhhh.. HAVING tänkte jag inte ens på. Självklart lär det vara så jag gör ;-)
Tack för svaren alla snälla!

Ps. Det funkar bra att bra gruppera på AdvertismentId :) Ds.

Medlem sedan juni 200032 967 inlägg
#6

mattiasjarnhall skrev:

Ps. Det funkar bra att bra gruppera på AdvertismentId :) Ds.

Konstigt. Kan det kanske vara specifikt för MySQL?

Mvh

Medlem sedan dec. 200012 464 inlägg
#7

Ja, och det är väldigt konstigt att dom tillåter det och till och med kallar det för en feature.

275 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)