Merci de m'avoir aidé, j'apprends encore SQL. J'ai une table principale appelée JEDI et j'essaie d'obtenir des informations spécifiques sur l'utilisation des conditions Inner JOIN et Where. Plus précisément, je souhaite obtenir le nombre de JEDI qui ont visité une planète spécifique entre des dates spécifiques et leur niveau.
Je souhaite ensuite filtrer en utilisant un Inner JOIN sur la même table et me montrer uniquement les résultats pour les JEDI qui ont plus d'un padawan sur cette planète particulière. Je pense que la deuxième condition me déstabilise. J'ai collé le code que j'ai utilisé et l'exemple de tableau de données
Mon résultat devrait juste être 2, Maître Obi-Wan est le seul à répondre aux critères
SELECT COUNT(jedi.jedi_id),jedi.rank_id FROM jedi WHERE jedi.date >='2022-01-01' AND jedi.date <='2022-06-31' AND jedi.planet='Tatoine' INNER JOIN jedi ON jedi.jedi_id WHERE COUNT(jedi.padawan)>=2 GROUP BY jedi.rank_id
Tout d'abord, vous devez regrouper les colonnes et utiliser
HAVING COUNT
pour compter les valeurs en double.Remarque : Cette fonctionnalité ne fonctionne que pour chaque
jedi_id
具有唯一值jedi.padawan
. Cette requête convient à ces scénarios.Cependant, vous pouvez calculer une
jedi.padawan
的条件来改进查询,以便每个jedi.jedi_idjedi.padawan
valeur/code> unique en en ajoutant une autre qui ne sera pas incluseVous pouvez remplacer ceci par must INNER JOIN jedi ON jedi.jedi_id WHERE COUNT(jedi.padawan)>=2