par
Rei Itchido » 08 janv. 2007, 15:34
Bonjour à tous,
J'ai une petite question sur une requête MySQL. (petite précision, je bosse avec MySQL 4.0 donc je ne peux pas faire de sous-requêtes dans ma requête)
J'ai les tables t_user, t_classe et t_groupe.
Un user appartient à une classe qui appartient à un groupe.
Je cherche à récupérer le nom de l'user, le nom de sa classe, et le nom du groupe de la classe.
Avec la requête ci-dessous, j'arrive à récuperer les infos dont j'ai besoin
Code : Tout sélectionner
SELECT u.user_nom, c.classe_nom, g.groupe_nom
FROM t_user as u, t_classe as c, t_groupe as g
WHERE u.id_classe=c.id_classe
AND c.id_groupe=g.id_groupe
1ere question : comment faire la même requête avec des INNER JOIN?
Car si on part avec t_user comme "table de base" de la requête, je ne vois pas comment faire car on a aucune relation directe entre la t_user et t_groupe.
Code : Tout sélectionner
SELECT u.user_nom, c.classe_nom, g.groupe_nom
FROM t_user as u
INNER JOIN t_classe as c ON u.id_classe=c.id_classe
et là comment faire la jointure entre t_classe et g_groupe vu que la table de base est t_user?
2ème question :
Imaginons qu'une classe n'ait pas de groupe, avec ma 1ere requête qui fonctionne, je ne récuperai pas toutes les occurences car AND c.id_groupe=g.id_groupe ne sera pas toujours vrai.
Comment tout récuperer dès lors? Avec un LEFT JOIN? Mais alors j'ai besoin d'une requête de la forme de ma 1ère question
Merci de m'éclairer

Bonjour à tous,
J'ai une petite question sur une requête MySQL. (petite précision, je bosse avec MySQL 4.0 donc je ne peux pas faire de sous-requêtes dans ma requête)
J'ai les tables t_user, t_classe et t_groupe.
Un user appartient à une classe qui appartient à un groupe.
Je cherche à récupérer le nom de l'user, le nom de sa classe, et le nom du groupe de la classe.
Avec la requête ci-dessous, j'arrive à récuperer les infos dont j'ai besoin
[code]SELECT u.user_nom, c.classe_nom, g.groupe_nom
FROM t_user as u, t_classe as c, t_groupe as g
WHERE u.id_classe=c.id_classe
AND c.id_groupe=g.id_groupe[/code]
1ere question : comment faire la même requête avec des INNER JOIN?
Car si on part avec t_user comme "table de base" de la requête, je ne vois pas comment faire car on a aucune relation directe entre la t_user et t_groupe.
[code]
SELECT u.user_nom, c.classe_nom, g.groupe_nom
FROM t_user as u
INNER JOIN t_classe as c ON u.id_classe=c.id_classe
et là comment faire la jointure entre t_classe et g_groupe vu que la table de base est t_user?
[/code]
2ème question :
Imaginons qu'une classe n'ait pas de groupe, avec ma 1ere requête qui fonctionne, je ne récuperai pas toutes les occurences car AND c.id_groupe=g.id_groupe ne sera pas toujours vrai.
Comment tout récuperer dès lors? Avec un LEFT JOIN? Mais alors j'ai besoin d'une requête de la forme de ma 1ère question
Merci de m'éclairer :merci: