Momenteel ziet mijn DB er zo uit (genormaliseerd).



Ik probeer een view aan te maken waarbij D_provincie en D_categorie smelten met die van T_clubs. Ik doe dit zodat er ipv naam van een categorie gewoon een cijfer zou staan.

Maar ik raak niet uit aan de SQL query, ik heb het langs alle kanten geprobeerd en dit is het beste waar ik op ben gekomen, maar het werkt duidelijk niet.

CREATE VIEW V_clubs AS
SELECT CLU.D_id as ID,
CLU.D_naam as Naam,
CLU.D_categorie as Categorie,
CLU.D_provincie as Provincie,
CLU.D_gemeente as Gemeente,
CLU.D_contact as Contact,
CLU.D_foto as Foto,
CLU.D_extra as Extra,
CLU.D_zichtbaar as Zichtbaar,
FROM T_clubs as CLU,
JOIN T_categorie as CAT,
ON (CLU.D_categorie = CAT.D_categorie)
JOIN T_provincies as PROV,
ON (CLU.D_provincie = PROV.D_provincie) 


Kan iemand mij helpen ?
Volgens mij gaat er iets mis met je komma's. Ook moet je de kolommen uit de tabellen die je joint wel opgeven in je SELECT deel, anders zie je niets van het resultaat :)

Even herschreven. Ik gebruik nu INNER JOIN maar dat betekent dat als een club een verwijzing heeft naar een categorie die niet bestaat, hij niet getoond wordt. Wil je dat hij wel getoond wordt maar dat de categorienaam dan gewoon leeg is, moet je een LEFT JOIN gebruiken.

CREATE VIEW V_clubs AS
	SELECT
		c.D_id as ID,
		c.D_naam as Naam,
		cat.D_categorienaam as Categorie,
		prov.D_provincienaam as Provincie,
		c.D_gemeente as Gemeente,
		c.D_contact as Contact,
		c.D_foto as Foto,
		c.D_extra as Extra,
		c.D_zichtbaar as Zichtbaar
	FROM
		T_clubs as c
	INNER JOIN T_categorie as cat ON 
		c.D_categorie = cat.D_categorie
	INNER JOIN T_provincies as prov ON 
		c.D_provincie = prov.D_provincie
Oooh, ik zie het! Bedankt, Jelmer!

Reageren