Onderstaande 3 queries heb ik nodig om te zoeken naar hoofd- en subcategorieen en producten. Een drielaagse boom dus. Ik heb telkens die "url" nodig om de link naar de categorie of het product te kunnen maken, dus volgens mij kan ik het niet in één query (met twee unions) zetten. Of wel? 
De onderstaande query werkt niet, want deze geeft alleen de rijen terug waar een product in zit (maar ik wil dus ook de hoofd- en subcategorien terug krijgen die aan de zoekopdracht voldoen):
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| SELECT hc.naam naam, hc.url hc_url, hc.afbeelding afbeelding FROM hoofdcategorie hc WHERE hc.naam LIKE "%query%" OR hc.body LIKE "%query%" SELECT hc.url hc_url, sc.naam naam, sc.url sc_url, sc.afbeelding afbeelding FROM hoofdcategorie hc LEFT JOIN subcategorie sc ON hc.id = sc.hoofdcategorie_id WHERE sc.naam LIKE "%query%" OR sc.body LIKE "%query%" SELECT hc.url hc_url, sc.url sc_url, p.productnaam naam, p.url, p.afbeelding FROM hoofdcategorie hc LEFT JOIN subcategorie sc ON hc.id = sc.hoofdcategorie_id LEFT JOIN product p ON sc.id = p.subcategorie_id WHERE p.productnaam LIKE "%query%" |
De onderstaande query werkt niet, want deze geeft alleen de rijen terug waar een product in zit (maar ik wil dus ook de hoofd- en subcategorien terug krijgen die aan de zoekopdracht voldoen):
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| SELECT hc.naam hc_naam, hc.handvat hc_handvat, hc.afbeelding hc_afbeelding, sc.naam sc_naam, sc.handvat sc_handvat, sc.afbeelding sc_afbeelding, p.productnaam naam, p.handvat, p.afbeelding FROM product p LEFT JOIN subcategorie sc ON sc.id = p.subcategorie_id LEFT JOIN hoofdcategorie hc ON hc.id = sc.hoofdcategorie_id WHERE (hc.naam LIKE "%query%" OR sc.naam LIKE "%query%" OR p.productnaam LIKE "%query%" |
offtopic:
"WHERE" wordt in de laatste query niet goed gehighlight
"WHERE" wordt in de laatste query niet goed gehighlight