Left join php/MySQL et valeur null
Fermé
AdminTOURS
Messages postés
404
Date d'inscription
jeudi 5 juillet 2007
Statut
Membre
Dernière intervention
14 janvier 2011
-
31 mars 2010 à 12:15
AdminTOURS Messages postés 404 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 14 janvier 2011 - 31 mars 2010 à 13:48
AdminTOURS Messages postés 404 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 14 janvier 2011 - 31 mars 2010 à 13:48
A voir également:
- Left join php/MySQL et valeur null
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Valeur ascii - Guide
2 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
31 mars 2010 à 13:26
31 mars 2010 à 13:26
Bonjour,
Je ne sais pas ce que prend MySQL par défaut quand on met LEFT JOIN.
Dans ton cas, il faudrait que tu mettes LEFT OUTER JOIN, et que tu partes de la table des pilotes :
SELECT 'resultat_gp'.points
FROM pilotes
LEFT OUTER JOIN 'resultat_gp' ON resultat_pilote = pilotes_id
where pilotes_id = $pilote
and resultat_gp in (SELECT gp_idx
FROM liste_gp
left join circuit_f1 c on liste_gp.f1_idx = c.f1_cle
where gp_date >= '$annee'
AND gp_date < '$anneesup'
and gp_discipline = 'F1'
order by gp_date)
ORDER BY resultat_gp, points
Par contre, tu as une colonne qui a le même nom qu'une table, tu devrais y remédier : ce n'est pas très clair...
Xavier
Je ne sais pas ce que prend MySQL par défaut quand on met LEFT JOIN.
Dans ton cas, il faudrait que tu mettes LEFT OUTER JOIN, et que tu partes de la table des pilotes :
SELECT 'resultat_gp'.points
FROM pilotes
LEFT OUTER JOIN 'resultat_gp' ON resultat_pilote = pilotes_id
where pilotes_id = $pilote
and resultat_gp in (SELECT gp_idx
FROM liste_gp
left join circuit_f1 c on liste_gp.f1_idx = c.f1_cle
where gp_date >= '$annee'
AND gp_date < '$anneesup'
and gp_discipline = 'F1'
order by gp_date)
ORDER BY resultat_gp, points
Par contre, tu as une colonne qui a le même nom qu'une table, tu devrais y remédier : ce n'est pas très clair...
Xavier
AdminTOURS
Messages postés
404
Date d'inscription
jeudi 5 juillet 2007
Statut
Membre
Dernière intervention
14 janvier 2011
92
31 mars 2010 à 13:48
31 mars 2010 à 13:48
Heu oui, j'me suis planté de version effectivement, il faut bien partir de la table pilotes, merci ! (et bien inverser : on pilotes_id = resultat_pilote)
Pour le "outer", normalement MySQL l'ajoute, j'ai essayé, pas de changement... Sur certains forums ils parlent d'une condition supplémentaire
Tu penses que le nom du champ du même nom que la table peut influer (j'avoue que ce n'est pas bien malin...) ?
Une petite question : il semble qu'il y ait une différence entre l'appel d'une table entre cote ou non, peut-être pas dans ce genre de requête, mais il semble y avoir un impact, tu sais lequel ?
Merci en tout cas pour la réponse.
Pour le "outer", normalement MySQL l'ajoute, j'ai essayé, pas de changement... Sur certains forums ils parlent d'une condition supplémentaire
and points is nullpar exemple, mais même résultat, je sais plus trop quelle combinaison faire... Parce que le calcul case par case... bof bof
Tu penses que le nom du champ du même nom que la table peut influer (j'avoue que ce n'est pas bien malin...) ?
Une petite question : il semble qu'il y ait une différence entre l'appel d'une table entre cote ou non, peut-être pas dans ce genre de requête, mais il semble y avoir un impact, tu sais lequel ?
Merci en tout cas pour la réponse.