|
Publicité | ||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : décembre 2009 Messages : 139 ![]() |
Bonjour,
Je fais appel à votre aide concernant une jointure entre 3 tables, je souhaite que ma requete fasse apparaitre tous ses enregistrements de la table de gauche (heure) meme les enregistrement qui ne trouve pas de correspondance dans l'autre table. J'ai donc opté pour un LEFT JOIN mais ma requete ne fais pas apparaitre l'ensemble des enregistrement de ma table de gauche (heure) et je ne comprend pas pourquoi. J'espère avoir été assez clair. Voici mon code: Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Lorsque tu fais un left join, si la jointure ne peut se faire, alors les champàs prennent la valeur NULL.
Or dans ton where tu teste sur 2010-03-18. Si tu veux aussi les résultats qui ne matchent pas alors il te faut faire un test IS NULL Essaye ceci: Code mysql :
__________________
Get your motor runnin' Head out on the highway... |
||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : décembre 2009 Messages : 139 ![]() |
Cela ne change rien au resultat de ma requete car la jointure n'est pas sur le c.co_jour.
Je souhaite voir apparaitre la totalité de la table gauche soit 144 enregistrements et afficher les elements de la table de droite qui correspondent. Pour info la jointure se fait sur une découpe du timestamp jusqu'au minute (exemple : 12:1, 13:4, 15:5) et ma table de gauche comporte dans la colonne he_10min toute les heures de la journée par 10 minutes (ex: 11:0 , 11:1 , 11:2 , 11:3 etc. Et donc ma requete de base qui est toute simple c'est afficher les enregistrement découpés de ma table droite (co_date) J'ai également testé avec une requete simplifié et le résultat n'affiche que les heures qui match... Voia ce que je souhaite obetnir : co_date.................qte....... Time_10min........... he_10min.....diff ........................................22:00 ........................................21:05 ........................................ 21:04 18/03/2010 21:33.... 1......... 21:03....................21:03.........00:03:47 18/03/2010 21:28.....2......... 21:02....................21:02.........00:04:48 ........................................21:01 ........................................ 21:00 ........................................ 20:05 18/03/2010 20:42.....8..........20:04...................20:04.........00:05:56 18/03/2010 20:34.....8..........20:03...................20:03.........00:52:44 |
|
|
00
|
|
|
#4 | |||||||
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Citation:
J'ai fait un petit test, j'ai simulé tes tables de façon très simplifié: Code :
Maintenant j'execute ta requete: Code :
Code :
__________________
Get your motor runnin' Head out on the highway... |
|||||||
|
|
00
|
|
|
#5 | ||
|
Nouveau Membre du Club
![]() Inscription : décembre 2009 Messages : 139 ![]() |
Bonsoir M. N,
Un grand merci c'est exactement le résultat que je souhaitais, j'ai juste un légé soucis, ma requete comprends un COUNT qeu le system digère mal visiblement. Code :
MySQL a répondu: #1140 - Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause |
||
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : décembre 2009 Messages : 139 ![]() |
J'ai trouvé la réponse, désolé j'avais mal lu le message d'erreur (pour ne pas dire pas lu !!!!
J'ai ajouté un GROUP BY et le tour est joué.. Encore merci. J'auras une questions moin technique, comment affiches tu des exemples de résultats et/ou tabe comme tu fais dans tes réponses? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com