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

Résolu
rustaflyx
Messages postés
23
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
12 mars 2021
- 9 mai 2012 à 13:32
rustaflyx
Messages postés
23
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
12 mars 2021
- 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

5 réponses

rustaflyx
Messages postés
23
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
12 mars 2021

9 mai 2012 à 20:48
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
3
pmcoste
Messages postés
72
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
25 juillet 2013
1
9 mai 2012 à 15:25
La commende LEFT JOIN en SQL pour les jointures de table et colasce() pour la sélection de tes champs !

---------------------
Oderint dum metuant
0
pmcoste
Messages postés
72
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
25 juillet 2013
1
9 mai 2012 à 15:26
pardon, je voulais dire coalesce()

---------------------
Oderint dum metuant
0
rustaflyx
Messages postés
23
Date d'inscription
vendredi 4 mai 2012
Statut
Membre
Dernière intervention
12 mars 2021

9 mai 2012 à 18:35
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pmcoste
Messages postés
72
Date d'inscription
mercredi 7 février 2007
Statut
Membre
Dernière intervention
25 juillet 2013
1
9 mai 2012 à 19:56
$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
0