MySQL Left Join-Ci
J'ai une simple table de langues /id de modèle:
langue | modèle
fr, t1
fr, t1
de l'ua, t2
ge, t3
fr, t1
ge, t2
ge, t3
Modèle est toujours soit t1,t2 ou t3. Au total il y a 3 langues: fr, de l'ua, ge.
Il y a beaucoup plus d'informations dans la table, je suis juste de montrer ce qui est pertinent pour cette question, je vais être en utilisant les données pour la représentation graphique et donc besoin de retourner dans ce format:
fr, t1, 3
fr, t2, 0
fr, t3, 0
de l'ua, t1, 0
de l'ua, t2, 1
de l'ua, t3, 0
ge, t1, 0
ge, t2, 1
ge, t3, 2
Ce compte cependant de nombreux modèle d'occurrences dans chaque langue. Mais, le problème que j'ai, c'est de revenir un comptage à zéro si il n'y a pas de modèle de l'identifiant de cette langue en particulier dans le tableau.
Que je pensais qu'il aurait besoin d'une sorte de jointure gauche sous, sélectionnez le modèle id assurez-vous que le 3 id de modèle sont retournés pour chaque langue?
Est-il aussi un des modèles de tableau et/ou un tableau langues? Ou est-ce un tableau de la seule source de ces données?
sélectionnez une.modèle, count(un.modèle) que le comte, un.la langue, à partir de la table d'un left join (select distinct(modèle) à partir de la table) b sur une.modèle = b.modèle de groupe par une.modèle, un.langage de commande par un.la langue, une.modèle
C'est le seul tableau, c'est pourquoi je pense que j'aurais besoin de "left join (select distinct(modèle).." sur la même table.
OriginalL'auteur StuR | 2011-09-22
Vous devez vous connecter pour publier un commentaire.
Il pourrait y avoir une meilleure façon de faire cela, et je ne l'ai pas testé dans MySQL, mais les travaux suivants dans SQL Server 2005:
Voici les résultats avec les données de l'échantillon:
OriginalL'auteur Joshua Carmody
OriginalL'auteur Charles Bretana
Ce que vous avez besoin est de deux tables qui liste les valeurs possibles pour la langue et le modèle.
Ensuite, vous pouvez faire quelque chose comme ceci:
OriginalL'auteur nathan