Tengo dos tablas, en PostgreSQL, si eso es importante, con una relación de varias. Necesito unirme a ellos para que por cada "uno" solo obtenga un resultado único de la tabla "muchos". No solo eso, sino que debo destacar los resultados específicos de la tabla "muchos".Unir uno a muchos y recuperar un solo resultado
TABLE_A ID | NAME | DATE | MORE 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 | SORT 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 ... QUERY RESULT ID | NAME | DATE | CODE1 | CODE2 1 | JOHN | 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 columna SORT en TABLE_B es en realidad el último carácter en CODE2 reordenado. CODE2 puede terminar con 1-9, pero 3 es más importante que 5, 7, 4, 2, 1, 0, 6, 8, 9, por lo tanto 3 -> 1, 5 -> 2, 7 -> 3 y así adelante.
El problema que estoy enfrentando es que necesito la fila de TABLE_B donde ordenar es el número más bajo. En algunos casos, hay múltiples casos más bajos (vea ID = 4 en TABLE_B), entonces no importa cuál de las filas con ID más baja está seleccionada, solo que hay un único resultado para esa ID.
¡Bienvenido a StackOverflow! Gracias por mostrar datos y escribir una pregunta clara. La próxima vez, sin embargo, hará la vida más fácil a aquellos que quieran ayudarlo si muestra sus datos en términos de una instrucción 'CREATE TABLE' y' INSERT' o 'COPY' para cargar los datos. De esta forma, las personas pueden probar fácilmente las respuestas de los candidatos antes de publicar, para asegurarse de que no tengan errores de sintaxis y obtengan los resultados que desea. – kgrittn
Gracias por su comentario. Lo haré a partir de ahora. – thorgilsv