IF NOT NULL recupère ces champs, sinon ne fais rien dans SELECT & WHERE

Résolu
555clR Messages postés 36 Date d'inscription mardi 23 novembre 2010 Statut Membre Dernière intervention 4 avril 2013 - 27 mars 2013 à 01:09
555clR Messages postés 36 Date d'inscription mardi 23 novembre 2010 Statut Membre Dernière intervention 4 avril 2013 - 27 mars 2013 à 01:49
Bonjour à tous,
Voilà qq jours que j'essaie le soir de me documenter sur le sujet, mais je ne parviens à rien.
J'ai une base de données dans laquelle il y a plusieurs tables (admettons users, adresses).
Je souhaite faire une requête sur une table(user) qui est liée à une autre lorsqu'un certain champ est rempli(user_adresse). Si ce champ vaut NULL, rien à récupérer, sinon, il est lié à la table adresse (user_adresse = adresse_id).
J'ai trouvé des pistes sur le web mais rien de probant (avec coalesce par exemple mais ce n'est pas exactement ce que je veux faire) et puis ça ne résout pas je crois le problème du where ensuite.
Comment faire un tel tri ?
Suis-je obligée de le faire en 2 fonctions séparées ?
Auriez-vous un exemple simple?
User & adresse ne sont pas réellement le nom de mes tables mais c'est juste pour comprendre.
Merci d'avance de votre aide.
A bientôt

2 réponses

555clR Messages postés 36 Date d'inscription mardi 23 novembre 2010 Statut Membre Dernière intervention 4 avril 2013
27 mars 2013 à 01:25
J'essaie LEFT JOIN...
3
555clR Messages postés 36 Date d'inscription mardi 23 novembre 2010 Statut Membre Dernière intervention 4 avril 2013
27 mars 2013 à 01:49
C'est ça; avec left join, si le champ est vide, mysql ne la fait pas. Niquel, c'est ce qu'il me fallait :)

pour l'exemple que je donnais tout à l'heure, ce serait:

SELECT * FROM user as USR LEFT JOIN adresses as ADRS ON ADRS.adresse_id = USR.user_id
3
Rejoignez-nous