Comment sélectionner un enregistrement qui n'existe pas en affectant la valeur 0 [Résolu]

Messages postés
22
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
2 mars 2014
- - Dernière réponse : rustaflyx
Messages postés
22
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
2 mars 2014
- 9 mai 2012 à 20:48
Bonjour à tous
comment sélectionner un enregistrement qui n'existe pas en affectant la valeur 0 à chacun de ses attributs.
En fait, voici mon problème: je sélectionne suivant une condition des valeurs de "tsec" dans 6 tables différentes pour les afficher et il s'avère que la dernière table ne contient pas encore la ligne qui contient cette valeur et bloquant ainsi la procédure de sélection des autres valeurs qui pourtant sont disponible. J'aimerais savoir s'il y a un échappatoire.

Aidez moi svp!

LE MEC LE PLUS INC
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
22
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
2 mars 2014
3
Merci
Merci pmcoste pour ta réponse.elle n'a pas assuré à 100% mais par contre m'a inspiré à 200%.
Voici la solution qui marche:

<?php
$requete_tmoui = 'SELECT `psychrosoft`.`0`.tmoui,
`psychrosoft`.`3`.tmoui,
`psychrosoft`.`6`.tmoui,
`psychrosoft`.`9`.tmoui,
`psychrosoft`.`12`.tmoui,
`psychrosoft`.`15`.tmoui,
`psychrosoft`.`18`.tmoui,
coalesce(`psychrosoft`.`21`.tmoui, 0) as tmoui21
FROM `psychrosoft`.`0`
Left Join `psychrosoft`.`3` 
on `psychrosoft`.`0`.jour=`psychrosoft`.`3`.jour 
and `psychrosoft`.`0`.mois=`psychrosoft`.`3`.mois 
and `psychrosoft`.`0`.annee=`psychrosoft`.`3`.annee
Left Join `psychrosoft`.`6` 
on `psychrosoft`.`0`.jour=`psychrosoft`.`6`.jour 
and `psychrosoft`.`0`.mois=`psychrosoft`.`6`.mois 
and `psychrosoft`.`0`.annee=`psychrosoft`.`6`.annee
Left Join `psychrosoft`.`9` 
on `psychrosoft`.`0`.jour=`psychrosoft`.`9`.jour 
and `psychrosoft`.`0`.mois=`psychrosoft`.`9`.mois 
and `psychrosoft`.`0`.annee=`psychrosoft`.`9`.annee
Left Join `psychrosoft`.`12` 
on `psychrosoft`.`0`.jour=`psychrosoft`.`12`.jour 
and `psychrosoft`.`0`.mois=`psychrosoft`.`12`.mois 
and `psychrosoft`.`0`.annee=`psychrosoft`.`12`.annee
Left Join `psychrosoft`.`15` 
on `psychrosoft`.`0`.jour=`psychrosoft`.`15`.jour 
and `psychrosoft`.`0`.mois=`psychrosoft`.`15`.mois 
and `psychrosoft`.`0`.annee=`psychrosoft`.`15`.annee
Left Join `psychrosoft`.`18` 
on `psychrosoft`.`0`.jour=`psychrosoft`.`18`.jour 
and `psychrosoft`.`0`.mois=`psychrosoft`.`18`.mois 
and `psychrosoft`.`0`.annee=`psychrosoft`.`18`.annee
Left Join `psychrosoft`.`21` 
on `psychrosoft`.`0`.jour=`psychrosoft`.`21`.jour 
and `psychrosoft`.`0`.mois=`psychrosoft`.`21`.mois 
and `psychrosoft`.`0`.annee=`psychrosoft`.`21`.annee
WHERE `psychrosoft`.`0`.jour='.$res.'
AND `psychrosoft`.`0`.mois='.$lemois.'
AND `psychrosoft`.`0`.annee='.$lannee; 
?>


Une fois de plus merci

LE MEC LE PLUS INC

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 198 internautes nous ont dit merci ce mois-ci

Commenter la réponse de rustaflyx
Messages postés
72
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
25 juillet 2013
1
0
Merci
La commende LEFT JOIN en SQL pour les jointures de table et colasce() pour la sélection de tes champs !

---------------------
Oderint dum metuant
Commenter la réponse de pmcoste
Messages postés
72
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
25 juillet 2013
1
0
Merci
pardon, je voulais dire coalesce()

---------------------
Oderint dum metuant
Commenter la réponse de pmcoste
Messages postés
22
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
2 mars 2014
0
Merci
Excusez moi pmcoste, pouvez-vous me proposer un apercçu de l'utilisation de cette fonction coalesce() dans ma requête ci-dessous:
<?php
$requete_tmoui = "SELECT `psychrosoft`.`0`.tmoui,`psychrosoft`.`3`.tmoui,`psychrosoft`.`6`.tmoui,`psychrosoft`.`9`.tmoui,`psychrosoft`.`12`.tmoui,`psychrosoft`.`15`.tmoui,`psychrosoft`.`18`.tmoui,`psychrosoft`.`21`.tmoui 
                  FROM `psychrosoft`.`0`,`psychrosoft`.`3`,`psychrosoft`.`6`,`psychrosoft`.`9`,`psychrosoft`.`12`,`psychrosoft`.`15`,`psychrosoft`.`18`,`psychrosoft`.`21`
  WHERE `psychrosoft`.`0`.jour=$res 
  AND `psychrosoft`.`3`.jour=$res 
  AND `psychrosoft`.`6`.jour=$res 
  AND `psychrosoft`.`9`.jour=$res 
  AND `psychrosoft`.`12`.jour=$res 
  AND `psychrosoft`.`15`.jour=$res 
  AND `psychrosoft`.`18`.jour=$res 
  AND `psychrosoft`.`21`.jour=$res 
  AND `psychrosoft`.`0`.mois=$lemois 
  AND `psychrosoft`.`3`.mois=$lemois 
  AND `psychrosoft`.`6`.mois=$lemois 
  AND `psychrosoft`.`9`.mois=$lemois 
  AND `psychrosoft`.`12`.mois=$lemois 
  AND `psychrosoft`.`15`.mois=$lemois 
  AND `psychrosoft`.`18`.mois=$lemois 
  AND `psychrosoft`.`21`.mois=$lemois 
  AND `psychrosoft`.`0`.annee=$lannee
  AND `psychrosoft`.`3`.annee=$lannee
  AND `psychrosoft`.`6`.annee=$lannee
  AND `psychrosoft`.`9`.annee=$lannee
  AND `psychrosoft`.`12`.annee=$lannee
  AND `psychrosoft`.`15`.annee=$lannee
  AND `psychrosoft`.`18`.annee=$lannee
  AND `psychrosoft`.`21`.annee=$lannee";
$resultat_tmoui = mysql_query($requete_tmoui)or die ('requête non executée2 car'.mysql_error().'.');
$tmoui = mysql_fetch_row($resultat_tmoui);
?>


LE MEC LE PLUS INC
Commenter la réponse de rustaflyx
Messages postés
72
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
25 juillet 2013
1
0
Merci
$requete_tmoui = 'SELECT `psychrosoft`.`0`.tmoui,
`psychrosoft`.`3`.tmoui,
`psychrosoft`.`6`.tmoui,
`psychrosoft`.`9`.tmoui,
`psychrosoft`.`12`.tmoui,
`psychrosoft`.`15`.tmoui,
`psychrosoft`.`18`.tmoui,
coalesce(`psychrosoft`.`21`.tmoui, 0) as tmoui21
FROM `psychrosoft`.`0`
Join `psychrosoft`.`3` on `psychrosoft`.`0`.jour=`psychrosoft`.`3`.jour and on `psychrosoft`.`0`.mois=`psychrosoft`.`3`.mois and `psychrosoft`.`0`.annee=`psychrosoft`.`3`.annee
Join `psychrosoft`.`6` on `psychrosoft`.`0`.jour=`psychrosoft`.`6`.jour and on `psychrosoft`.`0`.mois=`psychrosoft`.`6`.mois and `psychrosoft`.`0`.annee=`psychrosoft`.`6`.annee
Join `psychrosoft`.`9` on `psychrosoft`.`0`.jour=`psychrosoft`.`9`.jour and on `psychrosoft`.`0`.mois=`psychrosoft`.`9`.mois and `psychrosoft`.`0`.annee=`psychrosoft`.`9`.annee
Join `psychrosoft`.`12` on `psychrosoft`.`0`.jour=`psychrosoft`.`12`.jour and on `psychrosoft`.`0`.mois=`psychrosoft`.`12`.mois and `psychrosoft`.`0`.annee=`psychrosoft`.`12`.annee
Join `psychrosoft`.`15` on `psychrosoft`.`0`.jour=`psychrosoft`.`15`.jour and on `psychrosoft`.`0`.mois=`psychrosoft`.`15`.mois and `psychrosoft`.`0`.annee=`psychrosoft`.`15`.annee
Join `psychrosoft`.`18` on `psychrosoft`.`0`.jour=`psychrosoft`.`18`.jour and on `psychrosoft`.`0`.mois=`psychrosoft`.`18`.mois and `psychrosoft`.`0`.annee=`psychrosoft`.`18`.annee
Left Join `psychrosoft`.`21` on `psychrosoft`.`0`.jour=`psychrosoft`.`21`.jour and on `psychrosoft`.`0`.mois=`psychrosoft`.`21`.mois and `psychrosoft`.`0`.annee=`psychrosoft`.`21`.annee
WHERE `psychrosoft`.`0`.jour='.$res.'
AND `psychrosoft`.`0`.mois='.$lemois.'
AND `psychrosoft`.`0`.annee='.$lannee;

---------------------
Oderint dum metuant
Commenter la réponse de pmcoste