[MySQL] - Requete
Résolu
bacchuss
Messages postés
1162
Date d'inscription
Statut
Membre
Dernière intervention
-
crabs Messages postés 908 Date d'inscription Statut Membre Dernière intervention -
crabs Messages postés 908 Date d'inscription Statut Membre Dernière intervention -
Bonjour
voila mon probleme SQL (MySQL):
j'ai 2 tables (j'ai fait tres court, y a plein d'autres tables et champs)
SELECT A, t1.E, t2.E
FROM machin, truc t1, truc t2
WHERE machin.B = t1.D
AND machin.C = t2.D
pour toto, je sais bien faire.
Par contre, pour titi, je me prends la tete
Quelqu'un sait ?
Merci
voila mon probleme SQL (MySQL):
j'ai 2 tables (j'ai fait tres court, y a plein d'autres tables et champs)
machin truc +-----+-----+-----+ +---+-----+ | A | B | c | | D | E | +-----+-----+-----+ +---+-----+ |toto | 1 | 2 | | 1 | 4.3 | |titi | 1 |NULL | | 2 | 5.1 | | | | | | | | resultat desire: +-----+-----+-----+ |toto | 4.3 | 5.1 | +-----+-----+-----+ |titi | 4.3 | | +-----+-----+-----+
SELECT A, t1.E, t2.E
FROM machin, truc t1, truc t2
WHERE machin.B = t1.D
AND machin.C = t2.D
pour toto, je sais bien faire.
Par contre, pour titi, je me prends la tete
Quelqu'un sait ?
Merci
A voir également:
- [MySQL] - Requete
- Mysql community server - Télécharger - Bases de données
- Mysql error 2002 ✓ - Forum Linux / Unix
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Erreur de requete facebook - Forum Facebook
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
4 réponses
Salut,
les jointures ignorent les NULL. Il faut regarder du coté de LEFT JOIN.
(Valider avec la version 4.0.23a de mysql)
Je sais pas si on peut imbriquer les 'left join à l'infini. Par contre ça va mettre
à genou ton serveur mysql si les tables machin et truc sont conséquentes.
Faut bien penser à mettre 'D' comme clé primaire unique de 'truc' ou comme
index.
A+, crabs
les jointures ignorent les NULL. Il faut regarder du coté de LEFT JOIN.
select A,t1.E,t2.E from machin left join truc as t1 on B=t1.D left join truc as t2 on C=t2.D
(Valider avec la version 4.0.23a de mysql)
Je sais pas si on peut imbriquer les 'left join à l'infini. Par contre ça va mettre
à genou ton serveur mysql si les tables machin et truc sont conséquentes.
Faut bien penser à mettre 'D' comme clé primaire unique de 'truc' ou comme
index.
A+, crabs
arf, j'essayais en mettant des + comme en oracle moi
merci je vais essayer ca.
Par contre mes tables ne sont pas grosses (1000 lignes env) donc ca devrait passer pour mon serveur
merci je vais essayer ca.
Par contre mes tables ne sont pas grosses (1000 lignes env) donc ca devrait passer pour mon serveur
bon apparemment ca marche.
Par contre, si je veux pousser un peu plus loin, c'est a dire mettre un filtre sur mon resultat, il ne le prend pas en compte
Je pensais que ca ne me retournerai qu'une ligne (celle avec titi), et bien non ... il me retourne toutes les lignes
:(
Par contre, si je veux pousser un peu plus loin, c'est a dire mettre un filtre sur mon resultat, il ne le prend pas en compte
select A,t1.E,t2.E from machin left join truc as t1 on B=t1.D left join truc as t2 on C=t2.D where A = "titi"
Je pensais que ca ne me retournerai qu'une ligne (celle avec titi), et bien non ... il me retourne toutes les lignes
:(