Page 1 sur 1

Aide SVP, à trouver la phrase qui contient le plus de mots d

Posté : 01 nov. 2011, 13:10
par jmbonni
Bonjour,
je recherche une aide pour résoudre le problème suivant :
j'ai 3 tables,
phrases(id,texte)
mots(id,texte)
mots-dans-phrases(mots_id,phrases_id)

La table mots-dans-phrases est constiuée avec les id (clé primaires) des tables phrases et mots. et liste la présence des mots dans les phrases. Plusieurs entrées identiques peuvent coexister.

Mon objectif est selon un jeu de mots uniques donné, trouver la phrase qui en contient le plus.
Merci d'avance

Re: Aide SVP, à trouver la phrase qui contient le plus de mo

Posté : 01 nov. 2011, 15:18
par xTG
Ta table mots-dans-phrases est assez moche, il aurait mieux fallu mettre ces deux ids en clé primaire et mettre un champ numérique pour le nombre de mot.

Avec ta structure actuelle :
SELECT mots.texte, mots-dans-phrases.phrases_id, COUNT(mots-dans-phrases.mots_id) AS nombre
FROM mots-dans-phrases INNER JOIN mots ON mots-dans-phrases.mots_id = mots.id AND mots.texte = 'le mot recherché'
GROUP BY mots-dans-phrases.phrases_id
Pas testé mais ceci devrait te sortir le nombre de fois que le mot apparait dans les phrases le contenant.

Re: Aide SVP, à trouver la phrase qui contient le plus de mo

Posté : 01 nov. 2011, 15:57
par jmbonni
Merci mais,
Ok pour un mot, mais avec une liste de 10 mots uniques je ne vois pas comment exploitér la requette pour un réponse de ce type :

avec la liste des mots suivants (papa,chocolat,aime, gateaux)
c'est la phrase "papa aime le chocolat et les bonbons" qui a le plus de mots de la liste liés à elle (3)
Il y a beaucoup de phrases !
Au lieu d'une liste de mots je peux avoir la liste de leur Id, ça simplifie un tout petit peu.