par
Hubert Roksor » 13 mai 2007, 14:54
Erm... c'est pas comme si on avait pas un demi-million de tutoriels à ce sujet...
Je te donne la version courte, étape par étape. Pour commencer, par quel moyen trouves-tu tes données ? apparement c'est pas les colonnes "Garde" et "Mois" de la table "cotisation". Comme "cotisation" c'est long à taper on lui donne un alias "c"
Code : Tout sélectionner
SELECT *
FROM cotisation AS c
WHERE c.Garde = 'OUI'
AND c.Mois LIKE '$Mois'
Quelle table souhaites-tu joindre ? réponse : "enfants", ou "e"
Code : Tout sélectionner
SELECT *
FROM cotisation AS c
JOIN enfants AS e
WHERE c.Garde = 'OUI'
AND c.Mois LIKE '$Mois'
...ah oui, mais comment tu fais la jointure ? par la colonne "FamilleID" de chaque table
Code : Tout sélectionner
SELECT *
FROM cotisation AS c
JOIN enfants AS e USING (FamilleID)
WHERE c.Garde = 'OUI'
AND c.Mois LIKE '$Mois'
Ensuite il ne reste plus qu'à préciser quelles colonnes tu voulais récupérer : "Nom", de la table "e"
Code : Tout sélectionner
SELECT e.Nom
FROM cotisation AS c
JOIN enfants AS e USING (FamilleID)
WHERE c.Garde = 'OUI'
AND c.Mois LIKE '$Mois'
Edit: j'ai pas compris le truc sur DISTINCT, la réponse doit être non. Si tu as 2 enfants alors tu as 2 lignes, c'est 100% normal. Si tu as 2 enfants par famille et 2 familles tu as 4 enregistrements, et ainsi de suite. À toi de faire ce que tu as à faire en PHP.
Erm... c'est pas comme si on avait pas un demi-million de tutoriels à ce sujet...
Je te donne la version courte, étape par étape. Pour commencer, par quel moyen trouves-tu tes données ? apparement c'est pas les colonnes "Garde" et "Mois" de la table "cotisation". Comme "cotisation" c'est long à taper on lui donne un alias "c"
[code]SELECT *
FROM cotisation AS c
WHERE c.Garde = 'OUI'
AND c.Mois LIKE '$Mois'[/code]
Quelle table souhaites-tu joindre ? réponse : "enfants", ou "e"
[code]SELECT *
FROM cotisation AS c
JOIN enfants AS e
WHERE c.Garde = 'OUI'
AND c.Mois LIKE '$Mois'[/code]
...ah oui, mais comment tu fais la jointure ? par la colonne "FamilleID" de chaque table
[code]SELECT *
FROM cotisation AS c
JOIN enfants AS e USING (FamilleID)
WHERE c.Garde = 'OUI'
AND c.Mois LIKE '$Mois'[/code]
Ensuite il ne reste plus qu'à préciser quelles colonnes tu voulais récupérer : "Nom", de la table "e"
[code]SELECT e.Nom
FROM cotisation AS c
JOIN enfants AS e USING (FamilleID)
WHERE c.Garde = 'OUI'
AND c.Mois LIKE '$Mois'[/code]
Edit: j'ai pas compris le truc sur DISTINCT, la réponse doit être non. Si tu as 2 enfants alors tu as 2 lignes, c'est 100% normal. Si tu as 2 enfants par famille et 2 familles tu as 4 enregistrements, et ainsi de suite. À toi de faire ce que tu as à faire en PHP.