Ressortir les lignes NULL d'une requete
Résolu/Fermé
Lap-top
Messages postés
56
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
5 octobre 2016
-
27 oct. 2014 à 15:08
Lap-top Messages postés 56 Date d'inscription vendredi 9 décembre 2011 Statut Membre Dernière intervention 5 octobre 2016 - 31 oct. 2014 à 11:51
Lap-top Messages postés 56 Date d'inscription vendredi 9 décembre 2011 Statut Membre Dernière intervention 5 octobre 2016 - 31 oct. 2014 à 11:51
A voir également:
- Ressortir les lignes NULL d'une requete
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Aller à la ligne dans une cellule excel - Guide
- Null messenger - Forum Mail
3 réponses
Utilisateur anonyme
27 oct. 2014 à 23:01
27 oct. 2014 à 23:01
Bonjour
Pour les produits non vendus, tous les champs de ta clause WHERE valent NULL. Ta clause WHERE est donc évaluée à FALSE, et la ligne correspondante n'est pas incluse dans les résultats.
Pourquoi n'écris-tu pas simplement
La clause ON d'une jointure n'est pas limitée à l'égalité de deux champs, tu peux très bien mettre une condition "complexe".
Je n'ai pas essayé, mais ça devrait marcher pour récupérer aussi les lignes des produits non vendus.
Pour les produits non vendus, tous les champs de ta clause WHERE valent NULL. Ta clause WHERE est donc évaluée à FALSE, et la ligne correspondante n'est pas incluse dans les résultats.
Pourquoi n'écris-tu pas simplement
... on produit.id_produit = vente.id_produit AND vente.id_employe = employe.id_employe and nom_employe like "Nick" ...? Il n'y a plus de WHERE pour supprimer les lignes que le LEFT JOIN avait, lui, conservées.
La clause ON d'une jointure n'est pas limitée à l'égalité de deux champs, tu peux très bien mettre une condition "complexe".
Je n'ai pas essayé, mais ça devrait marcher pour récupérer aussi les lignes des produits non vendus.
flokocha
Messages postés
1510
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
10 octobre 2015
281
Modifié par flokocha le 28/10/2014 à 11:08
Modifié par flokocha le 28/10/2014 à 11:08
Salut,
Dans la requête que tu indiques, il n'y a aucune référence à la table "employe". Mais je suppose qu'il s'agit d'un oubli à l'écriture dans ton post, sinon tu aurais tout simplement une erreur mysql.
Pour ce qui est de ton problème, la solution proposée par le père devrait fonctionner. Sinon, tu peux aussi remplacer
Dans la requête que tu indiques, il n'y a aucune référence à la table "employe". Mais je suppose qu'il s'agit d'un oubli à l'écriture dans ton post, sinon tu aurais tout simplement une erreur mysql.
Pour ce qui est de ton problème, la solution proposée par le père devrait fonctionner. Sinon, tu peux aussi remplacer
and nom_employe like "Nick"par
and (nom_employe like "Nick" or nom_employe is null).
Lap-top
Messages postés
56
Date d'inscription
vendredi 9 décembre 2011
Statut
Membre
Dernière intervention
5 octobre 2016
9
31 oct. 2014 à 11:51
31 oct. 2014 à 11:51
Okkk!! merci le père passe mais il a fallu que je pose un Where la où tu as mis AND. Apparemment, SQL refuse la présence d'un AND avant la clause WHER. Je sais pas trop.
J'ai donc fait après la clause on
Ça passe, merci.
Sinon, tu as raison flokocha, j'ai oublié de référencer la table employe.
Avant de revenir lire les réponses que vous avez postées, j'ai tenté et tenté et trouvé une méthode. Mais c'est plus complexe alors c'est plus la peine de la poster donc je vais utiliser la vôtre.
J'ai donc fait après la clause on
...WHERE employe.id_employe = vente.id_employe and nom_employe like "Nick".
Ça passe, merci.
Sinon, tu as raison flokocha, j'ai oublié de référencer la table employe.
Avant de revenir lire les réponses que vous avez postées, j'ai tenté et tenté et trouvé une méthode. Mais c'est plus complexe alors c'est plus la peine de la poster donc je vais utiliser la vôtre.