Enfin! donc si j'ai bien compris tu veux faire une requete qui te sort l'article qui comprend les mots "hisoire" ET "code"
Dans ce cas
Code :
SELECT news.news FROM news,search AS S1, search AS S2 WHERE news.id=S1.id AND S1.keyword='histoire' AND S2.keyword='codes' AND S1.id=S2.id
Dost67
Au départ j'ai des mots clés dans un champs texte HTML. Puis traitement PHP pour faire ressortir les truc intéressants... Ensuite la requête. --> C'est un moteur de recherche.
Bon je dois partir. Pour le JOIN j'essaierai ce soir mais j'ai cru entendre que c'était un peu lourd à faire ce type de requête ?
gizmo
Rhaaa! mais tu dis toujours pas ce que tu as au départ comme paramètre et ce que tu veux au final!
Sh@rdar
SELECT ... WHERE (search.keyword = 'keyword' OR search.code='code') LEFT JOIN on search.id = news.id
Bon j'ai l'impression que c'est toujours pas clair alors je fais le début de requête et je mets entre crochet ce que je ne sais pas faire :
SELECT news.texte FROM news, search WHERE (search.keyword='histoire' OR search.keyword='code') AND [id de 'histoire' == id de 'code'] AND news.id=search.id
Dost67
En fait dans mon cas je fais une recherche sur keyword='histoire' AND keyword='code', je veux qu'il me sorte 'Mon texte 1'.
Dost67
OK, donc les tables :
Code :
Dans la table search :
Colonnes : keyword | id
-------------------------------
Ligne 1 : histoire | 1
Ligne 2 : code | 1
Ligne 3 : histoire | 2
Dans la table news :
Colonnes : id | texte
--------------------------------
Ligne 1 : 1 | Mon texte 1
Ligne 2 : 2 | Mon texte 2
Ligne 3 : 3 | etc...
Ce que je souhaite (je le fais en Français) :
Etape 1 : Sélectionner id de la table search tel que keyword='histoire' et keyword='code' mais aussi que 'histoire' et 'code' aient le même id
Etape 2 : Sélectionner texte dans la table news tel que search.id_récupéré_avant=news.id
[jfdsdjhfuetppo]--Message édité par Dost67--[/jfdsdjhfuetppo]
gizmo
c'est pas clair ce que tu veux, tu peux préciser les infos dont tu disposes avant de faire ta requete?
Dost67
Voici ma table (search) :
Colonnes : keyword id
histoire 10
codes 10
histoire 11
Le champs ID me sert à faire une jointure avec une autre table (news)... Quand je fais ça :
Code :
SELECT DISTINCT news.news FROM news, search WHERE (search.keyword='histoire' OR search.keyword='codes') AND news.num=search.id
Le problème c'est qu'il va me sortir les 3 mots-clés ci-dessus or je ne voudrais que ceux qui ont le même ID. Par exemple comment demander
Code :
'histoire' et 'code' sachant que ces deux mots doivent avoir le même ID et que search.id == news.num