Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2011, 16h01   #1
Membre du Club
 
Inscription : juin 2009
Messages : 101
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 101
Points : 40
Points : 40
Par défaut Probleme de if dans ma requete

Bonjour

j'ai un probleme avec une requete et un if compris dans cette requete

Code :
1
2
3
4
5
6
 
SELECT table1.champs1,table1.champs2, IF (table2.champs1 IS NULL,'000' ,table2.champs1) AS champ3
 
FROM table1 LEFT JOIN table2 ON table1.champsid = table2.champsid
 
WHERE table1.champs2 = '12'
Mon probleme est que quand ma condition est vrai je ne recupere pas '000' dans champs3.
Vu que j'ai un left join il peut y avoir des lignes de la table1 sans correspondance dans la table2 et jsutement j'ai besoin de formater le champ de la table2 sans correspondance

Du coup quelle est la condition a tester svp

Merci d'avance
mattmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 16h14   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
1) Les champs sont à la campagne ou dans les formulaires, pas dans les tables SQL qui ne sont constituées que de colonnes et de lignes !

2) Si la colonne2 de la table1 est de type numérique comme le suggère la valeur cherchée, inutile de mettre cette valeur entre apostrophes !

3) Avec des alias, ça rend la requête plus agréable à lire et moins longue à écrire.

4) Essaie avec COALESCE qui est plus standard.
Code :
1
2
3
4
SELECT t1.colonne1, t1.colonne2, COALESCE(t2.colonne1, '000') AS colonne3
FROM table1 t1
LEFT JOIN table2 t2 ON t1.colonneid = t2.colonneid
WHERE t1.colonne2 = 12
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 16h56   #3
Membre du Club
 
Inscription : juin 2009
Messages : 101
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 101
Points : 40
Points : 40
Merci bcp ca marche bcp mieux, et desolé pour les champs
mattmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h42.


 
 
 
 
Partenaires

Hébergement Web