recherche sur plusieurs tables MySQL

recherche sur plusieurs tables MySQL - PHP - Programmation

Marsh Posté le 06-04-2004 à 03:51:37    

Bonjour,
 
C'est peut-être bête comme question, mais j'aimerais savoir comment faire une recherche sur différente tables d'une base en une seule requete (et sans doublons si possible  ;) )
 
En gros, dans ma base, j'ai 3 tables dont les colonnes sont identiques, mais dont le contenu peut être différent :
 
Table1
(famille,sous_famille,designation,dosage)
 
Table2
(famille,sous_famille,designation,dosage)
 
Table3
(famille,sous_famille,designation,dosage)
 
J'aimerais pouvoir faire une recherche sur un mot clef du champ "designation" sur les 3 tables...
 
En gros, j'ai pensé à ça, mais ca rame pendant un bon moment avant de partir en carafe :
 
SELECT DISTINCT * FROM table1, table2, table3 WHERE MATCH (table1.designation,table2.designation,table3.designation) AGAINST ('mot_clef' IN BOOLEAN MODE);
 
Pourriez-vous m'aider ???  
 
Par avance merci !!


Message édité par Anathorn le 06-04-2004 à 19:39:52
Reply

Marsh Posté le 06-04-2004 à 03:51:37   

Reply

Marsh Posté le 06-04-2004 à 03:52:56    

avec des join à priori
 
fouille un peu dans la doc de mysql pour des exemples


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 06-04-2004 à 03:53:48    

sinon pour tes tables... pense plutot à en faire 1 avec 1 champs en plus (un truc du genre "type" )


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 06-04-2004 à 03:58:40    

Avant tout, merci Burgergold pour cette aussi rapide réponse... Mais j'ai oublié de dire que je débutais...  
 
Concernant la doc, j'ai cherché... Ca fait 3 jours que je fouille... mais je ne doit pas comprendre, parce que ca ne fonctionne pas...
 
Et pour la table unique, j'y ai déjà pensé, mais je n'ai pas le droit...

Reply

Marsh Posté le 06-04-2004 à 09:10:42    

un tutorial sur le langage SQL s'impose -> bibliolinks.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 06-04-2004 à 12:56:18    

Je suis d'accord... mais en attendant, personne ne veut me donner la solution ?

Reply

Marsh Posté le 06-04-2004 à 19:39:05    

:bounce:   up !!

Reply

Marsh Posté le 06-04-2004 à 19:41:31    

utilise les UNION

Code :
  1. select * from table1
  2. union
  3. select * from table2
  4. union
  5. select * from table3
  6. order by 1


 
etc...
 
Mais si tu te retrouves dans un cas pareil (3 tables identiques) la structure de ta bdd est à revoir...


Message édité par jagstang le 06-04-2004 à 19:41:54
Reply

Marsh Posté le 06-04-2004 à 19:42:47    

Anathorn a écrit :


Et pour la table unique, j'y ai déjà pensé, mais je n'ai pas le droit...  


 
C'est totalement ridicule. c'est contre les fondements même des bases de données (redondance etc...)
 
qui te l'interdit ?

Reply

Marsh Posté le 06-04-2004 à 23:04:30    

JagStang a écrit :


 
C'est totalement ridicule. c'est contre les fondements même des bases de données (redondance etc...)
 
qui te l'interdit ?


 
+1


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 06-04-2004 à 23:04:30   

Reply

Marsh Posté le 06-04-2004 à 23:20:51    

JagStang a écrit :


 
C'est totalement ridicule. c'est contre les fondements même des bases de données (redondance etc...)
 
qui te l'interdit ?


 
En fait, le site existe déjà, je suis seulement là pour rajouter 2-3 fonctions supplémentaire, comme le moteur de recherche en question... La boîte ne veut pas que je modifie la base...
 
Maintenant, les colonnes sont identiques, mais les contenues sont différents... Bref, c'est comme ça, je dois faire avec...  
 
Ceci dit, merci JagStang pour le "UNION"... Je vais essayer, voir ce que ça donne...
 
Merci ;)

Reply

Marsh Posté le 06-04-2004 à 23:23:43    

Anathorn a écrit :


 
En fait, le site existe déjà, je suis seulement là pour rajouter 2-3 fonctions supplémentaire, comme le moteur de recherche en question... La boîte ne veut pas que je modifie la base...


 
au moins fait leur savoir que celui qui a fait ca l'a fait comme un bourrin (sauf si c'est celui qui te paye, tu le dis plus gentiement :D) et c'est comme ca que tu vas montrer que tu veux vraiment les aider
 
p-e te diront ils: bien tiens il a tout a fait raison, profite enh pour en faire de même.
 
J'crois pas non plus que ca soit très difficile de migrer les 3 tables dans 1


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 06-04-2004 à 23:27:03    

Burgergold a écrit :


J'crois pas non plus que ca soit très difficile de migrer les 3 tables dans 1


 
C'est pas la migration en question de la base qui leur fait peur... mais plutôt reprogrammer tout le site avec une nouvelle "architecture bdd"...

Reply

Marsh Posté le 06-04-2004 à 23:36:40    

C'est bon JagStang...
 
Ca fonctionne super bien !!  
 
Encore merci ;)

Reply

Marsh Posté le 06-04-2004 à 23:38:32    

Anathorn a écrit :


 
C'est pas la migration en question de la base qui leur fait peur... mais plutôt reprogrammer tout le site avec une nouvelle "architecture bdd"...


 
ouais c'est sur, ca dépend toujours de l'envergure du site, c'est dure à dire de ma position :D
 
quoi que logiquement les requetes se modifie facilement, alors ca dépend plus du nombre qu'autre chose
 
ah lala je m'arrete, tu vas avoir une dent contre moi :D


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed