Hey,

Ik wil via een MySQL query alle categoriƫn uit de tabel iip_links_cat laden, en dan in de tabel iip_links kijken hoeveel links er matchen met de id van de category. In de tabel van de categoriƫn wordt de categorie aangegeven met id, in de tabel van de links wordt dit aangegeven met cat.
Ik heb al wat zitten proberen met JOIN en COUNT, maar ik ben daar niet zo ervaren mee.
Kan iemand me hier uit de brand helpen?

Alvast bedankt!

SELECT *, (SELECT COUNT(*) FROM iip_links AS il WHERE il.cat = ilc.id) AS aantal
FROM iip_links_cat AS ilc


[google]SQL Subquery[/google].
Is het hier niet het geval dat je alsnog twee queries draait? Ik dacht meer te moeten zoeken in de richting van JOIN?
SELECT  
	iip_links_cat.*, COUNT(*) 
FROM 
	iip_links_cat 
LEFT JOIN iip_links 
	ON iip_links_cat.id= iip_links.cat 
GROUP BY 
	iip_links_cat.id 
ORDER by 
	iip_links_cat.id DESC 
LIMIT 25


Als je het met een join wil oplossen kan je het zo oplossen. Ik weet niet wat beter en sneller is in dit geval; Ik ondervind altijd dat een sub query sneller dan een JOIN (MySQL, myisam). Maar goed, als je 'echt' voor performance gaat maak je een column met de naam 'count' in the iip_links_cat table, deze moet je wel elke keer aanpassen als een iets toevoegt/verwijderd.
@Gerjo: Dat kolom aanmaken hoeft niet. Je ziet dat er makkelijker twee queries voor te vinden zijn die het zo oplossen, zonder dat je telkens kolommen aan moet passen.
Ik weet bijna zeker dat een subquery sneller is dan een join. Zeker omdat deze subquery eigenlijk een hartstikke simpele query is. Hij zit dan ook nog eens in een nog simpelere query. Kan me geen snellere query voorstellen eigenlijk :).

Reageren