2011-04-26 4 views
0

J'ai deux tables dans ma base de données (Jobs et catégories), j'ai besoin d'aide avec un SQL qui va sélectionner les catégories et compter le nombre de travaux dans chaque catégorie. J'utilise MySQL si cela aide.Afficher les catégories et leurs chiffres

Jusqu'à présent,

 

SELECT * from categories c left join jobs j on (c.job_id = j.job_id); 

Merci

+0

Je veux dire la base de données structure * * - ce que les tables ressemblent et les colonnes qu'ils ont. –

Répondre

0

En supposant que votre structure de la table est similaire à ceci:

Catégorie
ID, Nom

Job
ID, CategoryID, Nom

SELECT Category.Name, COUNT(Job.ID) 
FROM Job 
    INNER JOIN Category ON Job.CategoryID = Category.ID 
+1

imho LEFT rejoindre est plus approprié ici (vous devez également afficher les catégories avec 0 emplois) –

+0

Dépend de l'exigence. –

+0

Je ne comprends pas: Est-ce que vous dites que ce serait génial si j'utilise LEFT au cas où je voudrais afficher 0 emplois ou quoi? Quelle différence fait INNER, s'il vous plaît? @BorisBucha –

1

En supposant que vous avez une colonne de CategoryName ...

 
select c.CategoryName, 
     count(*) 
from Categories c 
join Jobs  j on j.job_id = c.jobID 
group by c.CategoryName 
+0

Merci, fonctionne bien –

Questions connexes