Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
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 18/04/2011, 12h23   #1
Futur Membre du Club
 
Homme
Infographiste, webdevelopper, consultant en communication, bidouilleur sur Macintosh
Inscription : septembre 2007
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Infographiste, webdevelopper, consultant en communication, bidouilleur sur Macintosh
Secteur : Communication - Médias

Informations forums :
Inscription : septembre 2007
Messages : 37
Points : 16
Points : 16
Par défaut Mauvaise utilisation de COUNT ?

Bonjour à toutes et tous.
J'expose mon problème...

Table 1 structure : phId - phNom... Soit :
1 - toto.jpg
2 - titi.jpg
3 - tata.jpg
4 - tutu.jpg

Table 2 structure : phMcId - PhMcNom... Soit :
10 - lapin
11 - chien
12 - chat
13 - cheval

Table 3 structure : phMcId - PhId... Soit :
11 - 1
12 - 1
10 - 3
10 - 4
10 - 2
11 - 2

Comme vous pouvez le constater, il s'agit d'une base mySql destinée à gérer une indexation de photo. Donc, la table 1 regroupe la liste des photos, la table 2 regroupe la liste des mots clés et la table 3 est une table de correspondance entre les mots clés et les photos.

J'ai fait un formulaire à une entrée en html de type "input" dans lequel l'internaute peut saisir 1 ou plusieurs mots clés. J'obtiens alors une chaine du type "chat chien" par exemple.

Après avoir "éclaté" la chaine à l'aide de l'instruction PHP EXPLODE, je recherche dans ma base les photos qui possèdent à la fois le mot clé "chat" et le mot clé "chien" (quand on regarde la description de mes tables, ci-dessus, on se rend compte que seule la photo "toto.jpg" répond à cette requête).

Voici la requête que j'utilise :
Code :
1
2
SELECT phMcId, phId, COUNT(*) FROM TABLE 3
WHERE (phMcId='11' OR phMcId='12') GROUP BY phId
Or, le résultat de cette requête m'affiche toutes les photos qui possèdent le mot clé "chat" OU "chien" OU ("chien" ET "chat")...

J'imagine que ma requête est mal construite mais je ne vois pas comment la faire autrement.

Pouvez-vous m'aider svp ?
grafistolage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 12h33   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 445
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 445
Points : 7 532
Points : 7 532
Il ne manque pas grand chose pour arriver au résultat...

Code :
1
2
3
4
5
6
SELECT  phId
    ,   COUNT(*) 
FROM    TABLE 3
WHERE   phMcId IN ('11', '12')
GROUP BY phId
HAVING  COUNT(DISTINCT phMcId) = 2
D'ailleurs, en affichant le COUNT, tu avais déjà les pistes pour arriver jusque là
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 14h05   #3
Futur Membre du Club
 
Homme
Infographiste, webdevelopper, consultant en communication, bidouilleur sur Macintosh
Inscription : septembre 2007
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Infographiste, webdevelopper, consultant en communication, bidouilleur sur Macintosh
Secteur : Communication - Médias

Informations forums :
Inscription : septembre 2007
Messages : 37
Points : 16
Points : 16
Merci beaucoup, cela fonctionne parfaitement. Je n'étais certes pas très loin, mais sans ton aide, j'aurais eu beaucoup de mal à arriver à un résultat satisfaisant.

merci encore
grafistolage 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 05h00.


 
 
 
 
Partenaires

Hébergement Web