Problème SQL avec OR

Résolu/Fermé
JB_A Messages postés 301 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 13 février 2018 - 28 juin 2008 à 17:44
JB_A Messages postés 301 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 13 février 2018 - 28 juin 2008 à 18:56
Bonjour,

Je viens de réaliser un SQL afin de rechercher dans plusieurs colonne l'existance d'un mot clé.

S'il n'y a qu'un enregistrement dans lequel se trouve ce mot clé, il me renvoie bien l'enregistrement mais s'il y en a plusieurs, il me renvoie n'importe quoi (le nombre d'enregistrement multiplié par +/- 10000).

Voici mon SQL :

SELECT fjs_ticket_id, fjs_categoryticket_libelle, fjs_state_libelle, fjs_ticket_date_created, 
fjs_inus_prenom, fjs_inus_nom, fjs_ticket_userid from tjs_ticket, tjs_state, tjs_category_ticket, 
tjs_internal_user where fjs_ticket_userid=fjs_inus_id AND fjs_ticket_stateid=fjs_state_id AND fjs_ticket_categorid=fjs_categoryticket_id AND fjs_categoryticket_libelle LIKE '%keyword%' 
OR fjs_ticket_comment LIKE '%keyword%' OR fjs_ticket_historique LIKE '%keyword%' 
OR fjs_ticket_contournement LIKE '%keyword%' OR fjs_ticket_soluce LIKE '%keyword%' 
ORDER BY fjs_ticket_stateid DESC, fjs_ticket_date_created ASC 


Pourriez-vous m'aider. SVP Merci

2 réponses

gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
28 juin 2008 à 17:46
Tu ne fais pas de jointures entre tes tables tjs_ticket, tjs_state, tjs_category_ticket, tjs_internal_user?
0
JB_A Messages postés 301 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 13 février 2018 5
28 juin 2008 à 17:52
Merci de ta réponse.

C'est quoi une jointure ? Cela sert à quoi ?

Sinon pour mon problème, je viens de trouver la solution sur le forum :

http://www.commentcamarche.net/forum/affich 7066361 syntaxe sql or

Il suffit tout simplement de mettre tous les OR dans une parenthèse.
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301 > JB_A Messages postés 301 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 13 février 2018
28 juin 2008 à 17:54
La jointure c'est pour lié les tables entre elles par leur clé primaire/étrangère. Si tu ne les lie pas, il y aura une multiplication des éléments.
Mais bon, tu as trouvé, c'est cool!
0
JB_A Messages postés 301 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 13 février 2018 5 > gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014
28 juin 2008 à 18:00
Merci de ta réponse,

Désolé de mon ignorance sur ce point mais je suis autodidacte en programmation et pour faire le lien entre les différentes tables j'ajoute des critères comme
fjs_ticket_userid=fjs_inus_id 
(qui permet de lier la table tjs_ticket et la table tjs_internal_user). C'est pas comme cela que cela marche ?
0
Matio Messages postés 671 Date d'inscription mardi 6 mars 2007 Statut Membre Dernière intervention 25 janvier 2011 299 > JB_A Messages postés 301 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 13 février 2018
28 juin 2008 à 18:05
Si c'est aussi des jointures SQL 1
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
28 juin 2008 à 18:06
en fait, c'est <table1>.<attribut1> = <table2>.<attribut2> attribut1 et attribut2 étant des clés primaires/étrangères.
0
JB_A Messages postés 301 Date d'inscription jeudi 19 juin 2008 Statut Membre Dernière intervention 13 février 2018 5
28 juin 2008 à 18:56
Merci pour ces renseignements.

@ +
0