PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Recherche full text sur plusieurs tables. Comment faire ?
Recherche full text sur plusieurs tables. Comment faire ?
Débuté par Nico, 25 juil. 2017 16:17 - 3 réponses
Posté le 25 juillet 2017 - 16:17
Bonjour, je souhaiterais mettre en oeuvre une recherche full text sur 2 tables.

Ma première table contient mes entête de commandes client.
Ma seconde table contient mes lignes de commandes.
Une jointure existe sur les 2 en passant par mon n° de commande.

Comment faire pour réaliser une recherche full text basée sur des critères pouvant appartenir aux 2 tables.

Par ex:
Recherche du client A (Table 1) ayant commandé la référence B (Table 2)
Je pensais créer 2 requêtes basées chacune sur les full index de chaque table, puis faire un union des résultats, mais cela ne fonctionne pas si par ex je fais une recherche du type "Client A + Référence B" passée en paramètres.

Merci d'avance.
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 26 juillet 2017 - 06:47
Bonjour,

Une recherche full-text reste une requête classique. Quelque chose comme ça devrait fonctionner.
SELECT * FROM table1, table2
WHERE Table1.num_cde = Table.num_cde
AND MATCH (Table1.Client) AGAINST ('toto*') > 0
AND MATCH (Table2.Ref) AGAINST ('titi*') > 0


--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Posté le 26 juillet 2017 - 09:57
Merci pour cette réponse, mais dans ce cas, cela signifie que je dois créer 1 index full text par champ et non pas 1 seul index full text regroupant tous les champs que je souhaite indexer ?

Merci
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 26 juillet 2017 - 12:45
Si ta recherche ne concerne que la référence alors oui ton index ne doit contenir que la référence, par contre si les termes recherchés peuvent être dans le libellé, la référence,... alors l'index devra se baser sur toutes les colonnes impactées.

Par contre si tu dois faire une recherche comme tu dis "Recherche du client A (Table 1) ayant commandé la référence B (Table 2)" alors l'ndex n'a aucun intérêt à mon sens car tu recherches des valeurs exactes qui ne se trouvent qu'à un endroit précis.

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique