MySQL count rows in each category

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gerard Nijboer

Gerard Nijboer

30/09/2009 22:01:00
Quote Anchor link
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!
 
PHP hulp

PHP hulp

26/04/2024 22:18:44
 
Jesper Diovo

Jesper Diovo

30/09/2009 22:06:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT *, (SELECT COUNT(*) FROM iip_links AS il WHERE il.cat = ilc.id) AS aantal
FROM iip_links_cat AS ilc


SQL Subquery.
 
Gerard Nijboer

Gerard Nijboer

01/10/2009 13:34:00
Quote Anchor link
Is het hier niet het geval dat je alsnog twee queries draait? Ik dacht meer te moeten zoeken in de richting van JOIN?
 
Gerard M

Gerard M

01/10/2009 13:53:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
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.
 
Jesper Diovo

Jesper Diovo

01/10/2009 17:02:00
Quote Anchor link
@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 :).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.