Bonjour,

Mes utilisateurs disposent de formulaires, chacun ayant leur ID, leur permettant de soumettre de 1 à 10 codes.
Ils peuvent revenir sur un formulaire existant et le mettre à jour (ajout, suppression de codes) : une nouvelle version est alors créée pour ce même ID.
Tout cela est stocké dans une TABLE1 : ID | Version | Codes
Il existe une autre table permettant de connaitre la dernière version de chaque formulaire, TABLE2 : ID | Version

Ex (1/2) :

TABLE1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ID | Version | Codes
001 | 1 | 123
001 | 2 | 123
001 | 2 | 456
001 | 3 | 123
001 | 3 | 222
001 | 3 | 789
001 | 4 | 135
001 | 4 | 222
001 | 4 | 246
002 | 1 | 111
002 | 1 | 222
002 | 2 | 222
002 | 2 | 789
003 | 1 | 222
003 | 1 | 444
003 | 1 | 789
TABLE2
ID | Version
001 | 4
002 | 2
003 | 1


Je cherche à mettre en place un "formulaire de recherche" dans lequel les utilisateurs peuvent chercher de 1 à 10 codes, et remonter les ID des formulaires dont la dernière version contient au moins tous les codes demandés.


Ex (2/2) :
L'utilisateur cherche les formulaires avec les codes 222 et 789
001 ne doit pas remonter (car sa dernière version, la 4, n'en contient qu'un des 2)
002 doit remonter (car sa dernière version, la 2, contient ces 2 codes)
003 doit remonter (car sa dernière version, la 1, contient ces 2 codes, plus un 3e, ce qui "ne dérange pas")

Je ne parviens pas à créer cette requête avec mes quelques connaissances; j'ai la possibilité de passer la liste des codes demandés en paramètre de cette requête.
Comment récupérer l'information "dernière version" des formulaires ? avec un "MAX" dans TABLE1 ou avec une jointure sur TABLE2 ?
Dans l'idéal, je souhaiterais une unique requête, mais la création d'une fonction, vue, index, etc. peut être envisagé si les performances le nécessitent.

Je vous remercie d'avance pour votre aide et vos conseils au néophyte que je suis.
Bonne journée à tous !
Guillaume