Om te beginnen ben ik een absolute beginner op SQL gebied. Ik ben bezig met het herstructureren van een pagina waarop verschillende artikelen worden getoond. Deze artikelen staan in een hoofdcategorie of in een subcategorie. Alle artikelen staan in dezelfde tabel (#cardCategories#). Hoofdcategorieën hebben een leeg parentID, subcategorieën hebben wel een parentID die verwijst naar de categorieID. Voorts is de omschrijving van de categorieën in een aparte tabel (#html#) gezet. Ik wil graag de volgende output bereiken:
hoofdcategorie 1 met omschrijving
subcategorie 1.1 zonder omschrijving
subcategorie 1.2 zonder omschrijving
subcategorie 1.3 zonder omschrijving
hoofdcategorie 2 met omschrijving
subcategorie 2.1 zonder omschrijving
etc...
Het is me al gelukt om met een query data van twee verschillende tabellen te combineren:
Met Google vind ik verschillende mogelijke oplossingen voor mijn probleem. Zo lijkt UNION of LEFT OUTER JOIN een redelijke optie te zijn, maar ik snap niet goed waar ik dat in bovenstaande code moet plaatsen. Ook begrijp ik niet goed hoe ik het GROUP BY statement moet gebruiken hierin. Als ik deze zou doen op het parentID, dan krijg ik volgens mij eerst de lege parentID's en dan alle onderliggende gegroepeerd. Dat wil ik niet, aangezien elk blokje data begint met een leeg parentID en vervolgens een aantal parentID's die verwijzen naar het categoryID van eerstgenoemde.
Het beste wat ik heb bedacht is een gedrocht als:
Ik werk overigens in ColdFusion met een MSSQL db. Kan iemand mij wijzen op de weg die ik dien te volgen? Ik heb een grote schop in de juiste richting nodig
//edit:
Wellicht handig ter illustratie. De output van de eerste SQL query op de website in kwestie. Ik heb alleen PARENTID IS NULL weggelaten, zodat je kunt zien wat er voor waardes in de gecombineerde tabellen (cardCategory en HTML) staat. Ik hoop niet dat dit wordt gezien als spam:
http://fastcards.nl/nl/over-fastcards/test/
hoofdcategorie 1 met omschrijving
subcategorie 1.1 zonder omschrijving
subcategorie 1.2 zonder omschrijving
subcategorie 1.3 zonder omschrijving
hoofdcategorie 2 met omschrijving
subcategorie 2.1 zonder omschrijving
etc...
Het is me al gelukt om met een query data van twee verschillende tabellen te combineren:
code:
1
2
3
4
5
6
7
8
| SELECT * FROM cardCategories INNER JOIN html ON cardCategories.HTMLID = html.HTMLID WHERE cardCategories.CHARGETABLEID > 2 AND cardCategories.PARENTID IS NULL AND cardCategories.ACTIVE = 1 ORDER BY cardCategories.[ORDER] ASC |
Met Google vind ik verschillende mogelijke oplossingen voor mijn probleem. Zo lijkt UNION of LEFT OUTER JOIN een redelijke optie te zijn, maar ik snap niet goed waar ik dat in bovenstaande code moet plaatsen. Ook begrijp ik niet goed hoe ik het GROUP BY statement moet gebruiken hierin. Als ik deze zou doen op het parentID, dan krijg ik volgens mij eerst de lege parentID's en dan alle onderliggende gegroepeerd. Dat wil ik niet, aangezien elk blokje data begint met een leeg parentID en vervolgens een aantal parentID's die verwijzen naar het categoryID van eerstgenoemde.
Het beste wat ik heb bedacht is een gedrocht als:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| SELECT * FROM cardCategories INNER JOIN html ON cardCategories.HTMLID = html.HTMLID WHERE cardCategories.CHARGETABLEID > 2 AND cardCategories.PARENTID IS NULL AND cardCategories.ACTIVE = 1 UNION SELECT * FROM cardCategories WHERE PARENTID = .... ORDER BY cardCategories.[ORDER] ASC |
Ik werk overigens in ColdFusion met een MSSQL db. Kan iemand mij wijzen op de weg die ik dien te volgen? Ik heb een grote schop in de juiste richting nodig
//edit:
Wellicht handig ter illustratie. De output van de eerste SQL query op de website in kwestie. Ik heb alleen PARENTID IS NULL weggelaten, zodat je kunt zien wat er voor waardes in de gecombineerde tabellen (cardCategory en HTML) staat. Ik hoop niet dat dit wordt gezien als spam:
http://fastcards.nl/nl/over-fastcards/test/
[ Voor 6% gewijzigd door Rexomnium op 04-03-2011 23:35 ]
We zijn allemaal vaandeldrager in een optocht van gekwetsten.