[RESOLU][MYSQL] Besoin d'aide pour une requete

Besoin d'aide pour une requete [RESOLU][MYSQL] - SQL/NoSQL - Programmation

Marsh Posté le 12-08-2005 à 11:44:49    

Bonjour à tous,
 
voilà mon problème, j'ai trois tables :
 
Data1(idData1,...)
Data2(idData2,...)
Lien(#idData1,#idData2,...)
 
J'ai un ensemble d'identifiants de la table Data1 (id1,id2,id3..) et je voudrais les Data2 communes à tous ces identifiants.
 
J'ai pensé à une première solution : rechercher les Data2 pour id1. Ensuite, pour chacun de ces identifiants, je vérifie qu'il est commun à id2, id3 ...
 
J'espère avoir été clair. Je suis sûr que cette solution marchera très bien mais avant de me lancer dans le codage (je fais mes accès via une application en C++), je voudrais etre sur qu'il n'y a pas d'autres solutions... En bref : est ce faisable avec une seule requete?
 
Merci d'avance pour votre aide!!  :D


Message édité par _p1c0_ le 12-08-2005 à 14:16:05
Reply

Marsh Posté le 12-08-2005 à 11:44:49   

Reply

Marsh Posté le 12-08-2005 à 12:15:52    

est ce que tu pourrais donner quelques lignes de tes tables et le résultat esperé?

Reply

Marsh Posté le 12-08-2005 à 13:00:24    

casimimir a écrit :

est ce que tu pourrais donner quelques lignes de tes tables et le résultat esperé?


 
Oui je peux :
 
avec les vrais noms ca fait :
 
Sonde(idSonde, nomSonde);
Regle(idRegle, nomRegle)
Sonde_Regle(idSonde,idRegle)
 
sachant qu'il y a encore d'autres champs dans les tables mais c'est pas nécessaire de les connaître ici...
 
Dans ma table Sonde (1,"Sonde1" ),(2,"Sonde2" )
Dans ma table Regle (1,"Regle1" ),(2,"Regle2" ),(3,"Regle3" ),(4,"Regle4" )
et dans Sonde_Regle (1,1),(1,3),(1,4),(2,1),(2,2),(2,4)
 
Donc ce que je voudrais : obtenir la ou les regle(s) communes, ici c'est 1 et 4
 
C'est plus clair?

Reply

Marsh Posté le 12-08-2005 à 13:43:22    

Code :
  1. SELECT idRegle
  2. FROM Sonde_Regle
  3. GROUP BY idRegle
  4. HAVING COUNT(*) > 1;

Reply

Marsh Posté le 12-08-2005 à 14:15:40    

Merci beaucoup Beegee!!! Ca marche nickel!! J'ai juste rajouté un

Code :
  1. WHERE idSonde IN (1,2)


 
et ca me convient très bien!!!  :D

Reply

Sujets relatifs:

Leave a Replay

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