Hola, si tengo estas tablas:
Código SQL:
Ver originalid | Nombre
-------------
1 | Nombre1
2 | Nombre2
3 | Nombre3
Código SQL:
Ver originalid_socio | Parcela
---------------------
1 |Parcela1
1 |Parcela2
2 |Parcela3
3 |Parcela4
Una selección por id del nombre e id_socio de la parcela me dará:
Código SQL:
Ver originalNombre1 | Parcela1
Nombre1 | Parcela2
Nombre2 | Parcela3
Nombre3 | Parcela4
¿Es posible que la salida fuera así?
Código SQL:
Ver originalNombre1 | Parcela1
| Parcela2
Nombre2 | Parcela3
Nombre3 | Parcela4
Es que de esa forma sería menos lioso gestionar los datos para imprimirlos.
A la hora de imprimir yo consigo esa salida haciendo una consulta doble, es decir, recorriendo cada registro de la entrada de nombres, lo imprimo, le hago la consulta de las parcelas que tiene, las imprimo, y paso al siguiente registro de nombres.
Lo más cerca que he estado es haciendo una función de concatenación, algo así (en el ejemplo):
Código SQL:
Ver originalSELECT nombre, string_agg(parcela, ', ') AS "Parcelas"
FROM nombres, parcelas
WHERE nombres.id=parcelas.id_socio
GROUP BY nombre;
Y me da esta salida:
Código SQL:
Ver originalNombre1 | Parcela1, Parcela2
Nombre2 | Parcela3
Nombre3 | Parcela4
Puede ser que lo que esté diciendo sea una tontería, y obtener una tabla así para hacer una impresión no sea el camino lógico. Si es así, se aceptan criticas