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 07/08/2011, 18h23   #1
Invité de passage
 
Homme Alain Gérard
Auditeur informatique
Inscription : juin 2008
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Alain Gérard
Âge : 56
Localisation : France

Informations professionnelles :
Activité : Auditeur informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2008
Messages : 9
Points : 4
Points : 4
Par défaut Problème de requête

Bonjour à tous,

J'ai cherché un peu partout, fais des tests avec ce que j'ai trouvé, mais rien a faire, donc je me tourne vers vous:

J'ai une requête SELECT qui doit intervenir sur 2 tables:
1 - Table clients
2 - Table clients_rubriques

Suite à la saisie d'un formulaire, je vais chercher les enregistrements correspondants (enfin j'essaie). en partant de deux informations qui sont la région et la sous_rubriques.

J'ai fait la requête suivante:

Code :
1
2
3
4
5
SELECT r.Id, r.Client_Id, r.Region, r.Rubrique_Id, r.Sous_Rubriques_Id 
FROM clients_rubriques AS r 
LEFT JOIN clients AS c ON c.Id = r.Client_Id 
WHERE r.Region LIKE '15' 
  AND r.Sous_Rubriques_Id LIKE '22'
(Les LIKE pour lire l'info dans un tableau sérializé).

Le Mysql_query me sort tous les enregistrements comme si il n'y avait pas de condition.

Auriez-vous une idée à me suggérer ?

Merci.
Heaven59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2011, 19h01   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 019
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 019
Points : 18 304
Points : 18 304
Envoyer un message via MSN à CinePhil
1) Pourquoi fais-tu une jointure avec la table des clients alors que tu ne l'utilises ni dans le SELECT, ni dans le WHERE ?

2) LIKE une valeur exacte est équivalent à un égal donc autant utiliser le signe = !

3) Inutile de mettre les valeurs des colonnes de type numérique entre apostrophes !

Bref, ta requête est équivalente à celle-ci, mieux écrite :
Code :
1
2
3
4
SELECT r.Id, r.Client_Id, r.Region, r.Rubrique_Id, r.Sous_Rubriques_Id 
FROM clients_rubriques AS r 
WHERE r.Region = 15 
  AND r.Sous_Rubriques_Id = 22
Elle devrait te donner toutes les lignes de la table clients_rubriques (qui aurait été mieux nommée au singulier ! ) pour lesquelles la région vaut 15 et la sous-rubrique vaut 22. Facile à vérifier puisque ces colonnes figurent dans le SELECT.

Si ce n'est pas ce que tu veux, explique mieux ce que tu cherches à obtenir comme résultat.
__________________
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
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h55.


 
 
 
 
Partenaires

Hébergement Web