Joignez-en un à plusieurs et récupérez le résultat unique

J'ai deux tables, dans PostgreSQL, si ce qui compte, avec un à de nombreuses relations. J'ai besoin de se joindre à eux, de sorte que pour chaque "un" je ne reçois que seul le résultat de la table "plusieurs". Non seulement cela, mais j'ai besoin de découvrir les résultats de la table "plusieurs".

TABLE_A 
ID | NOM | DATE | PLUS D'COLS.... 
1 | JOHN | 2012-01-10 | .... 
2 | LIZA | 2012-01-10 | .... 
3 | ANNY | 2012-01-10 | .... 
4 | JAMES | 2012-01-10 | .... 
... 

TABLE_B 
ID | CODE1 | CODE2 | TRI 
1 | 04020 | 85003 | 1 
1 | 04030 | 85002 | 4 
2 | 81000 | 80703 | 1 
3 | 87010 | 80102 | 4 
3 | 87010 | 84701 | 5 
4 | 04810 | 85003 | 1 
4 | 04030 | 85002 | 4 
4 | 04020 | 85003 | 1 
... 

RÉSULTAT DE LA REQUÊTE 
ID | NOM | DATE | CODE1 | CODE2 
1 | JEAN| 2012-01-10 | 04020 | 85003 
2 | LIZA| 2012-01-10 | 81000 | 80703 
3 | ANNY| 2012-01-10 | 87010 | 80102 
4 | JAMES| 2012-01-10 | 04810 | 85003 
... 

La colonne de TRI dans TABLE_B est en fait le dernier char dans CODE2 réorganisées. CODE2 pouvez en finir avec 1-9 mais 3 qui est le plus important alors 5, 7, 4, 2, 1, 0, 6, 8, 9 donc 3-->1, 5-->2, 7-->3 et ainsi de suite.

Le problème que je me pose, c'est que j'ai besoin de la ligne de TABLE_B où le tri est le plus petit nombre. Dans certains cas, il ya plusieurs plus bas de l'affaire (voir ID=4 dans TABLE_B), alors il n'est pas question que des lignes, avec le moins d'ID sont sélectionnés, mais seulement qu'il est l'unique raison pour que ID.

source d'informationauteur thorgilsv