Quel "JOIN" choisir dans ce cas ?

Résolu
phenetas Messages postés 1108 Date d'inscription   Statut Membre Dernière intervention   -  
phenetas Messages postés 1108 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai une base SQL avec (entre autre) deux tables, qui me servent à enregistrer des données à propos de stations d'accueil et d'objets leur étant associés.

Les tables intéressantes avec les attributs intéressants sont :

"Stations" (id [unique])

"Objets" (id [unique]| id_station | type_objet)

Les stations sont uniques, elles peuvent avoir plusieurs objets associés. Le "type_objet" est soit "A" ou "B".


En ce moment j'essaye d'afficher, pour chaque base quel est l'objet le plus ancien lui étant associé. Pour cela je compte me baser sur l'id de l'objet, qui s'incrémente. Donc le plus ancien est le plus petit.

L'algoritme que j'essaye de mettre en place est le suivant, mais comme je débute en SQL je me prends un peu la tête :

1) Choisir uniquement les "Stations" qui ont associé des objets de type "A" ET "B"
2) Parmi "1)", ne sélectionner que l'objet ayant l'"id" le plus petit
3) Afficher le résultat sous forme : "id_objet | id_base | type_objet"





J'arrive à faire 1)

J'ai un peu de mal pour le 2)

Et pour le 3 je pense que j'aurais besoin de faire un JOIN entre mon résultat 1) et 2), mais je ne suis pas sur du type de JOIN à employer ici.

Un SQL gourou peut-il m'aider svp ?


D'avance merci





A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 583
 
bonsoir,
je suppose que id_station et id_base sont interchangeables?
pour faire le 2:
select min(id) from Objets where type_objet = "A" or type_objet = "B" group by id_base

et donc le 3:
select Objets.* from Objets, (select min(id) as minid from Objets where type_objet = "A" or type_objet = "B" group by id_base) as m
where m.minid = Objets.id
1
phenetas Messages postés 1108 Date d'inscription   Statut Membre Dernière intervention   227
 
Merci yg_be, ta réponse m'a beaucoup aidé et mon problème est résolu !
0