2013-01-13, 22:59
#1
Hej, har en databas med en tabell "kategorier" som innehåller kolumnerna "id","kategori" och "parentKategoriId".
För samtliga underkategorier är värdet i kolumnen parentKategoriId det id'et som "föräldern har". För föräldrarna är parentKategoriId=0.
För att plocka ut alla förälderkategorier och skriva dessa i alfabetisk ordning, och dessutom skjuta in alla barn under förälderkategorin har jag fått hjälp med ett SQL som inte verkar fungera hos mig men däremot hos snubben som hjälpte mig.
När jag kör koden får jag felmeddelandet #1054 - Unknown column 'a.parentKategoriId' in 'having clause'
Jag kan inte komma på vad som kan fela men jag kan försäkra er om att kolumnerna finns. Det fungerar till exempel att köra följande SQL (gör inte riktigt vad jag vill tyvärr):
Kanske värt att nämna är att han använder SQLite och jag MySQL.
Någon snäll själ därute som kanske vet? Tack på förhand!
För samtliga underkategorier är värdet i kolumnen parentKategoriId det id'et som "föräldern har". För föräldrarna är parentKategoriId=0.
För att plocka ut alla förälderkategorier och skriva dessa i alfabetisk ordning, och dessutom skjuta in alla barn under förälderkategorin har jag fått hjälp med ett SQL som inte verkar fungera hos mig men däremot hos snubben som hjälpte mig.
Kod:
SELECT a.kategori as Parent, b.kategori as Child FROM kategorier a, kategorier b GROUP BY Child, Parent HAVING (a.parentKategoriId = 0 AND b.parentKategoriId = a.id) OR (a.id IN (SELECT e.id FROM kategorier e WHERE (SELECT count(*) FROM kategorier c, kategorier d WHERE c.parentKategoriId = 0 AND d.parentKategoriId = c.id AND c.id = e.id) = 0 AND e.parentKategoriId = 0) AND b.id = a.id) ORDER BY a.kategori, b.kategori
När jag kör koden får jag felmeddelandet #1054 - Unknown column 'a.parentKategoriId' in 'having clause'
Jag kan inte komma på vad som kan fela men jag kan försäkra er om att kolumnerna finns. Det fungerar till exempel att köra följande SQL (gör inte riktigt vad jag vill tyvärr):
Kod:
SELECT a.kategori as Parent, b.kategori as Child FROM kategorier a, kategorier b WHERE a.parentKategoriId = 0 AND (b.parentKategoriId = a.id OR b.id = a.id) ORDER BY a.kategori, b.kategori
Kanske värt att nämna är att han använder SQLite och jag MySQL.
Någon snäll själ därute som kanske vet? Tack på förhand!