Hola a todos
Cita:
Empezado por Angel.Matilla
Sí. El campo código está asociado a la persona y en la tabla electos se guarda el código de la persona, el cargo que ocupa y la población (codificados). La descripción de la tabla Persona ya la puse antes. La tabla Electos tiene esta estructura:
Código:
CREATE TABLE Electos (CodPrv VARCHAR(3) DEFAULT '99' NOT NULL,
Codigo INTEGER NOT NULL,
Cargo INTEGER NOT NULL,
Junta INTEGER DEFAULT 1,
Poblacion INTEGER DEFAULT 1,
CONSTRAINT PK_Electos PRIMARY KEY (CodPrv, Codigo, Cargo, Junta))
|
Lo mismo estoy despistado pero no me suena de ver la estructura de la tabla persona mas arriba, pero suponiendo que sea parecida a esto:
Código SQL
[-]CREATE TABLE `persona` (
`CodPrv` varchar(3) NOT NULL DEFAULT '99',
`Codigo` int(11) NOT NULL,
`NOMBRE` varchar(64) NOT NULL,
`Poblacion` int(11) DEFAULT '1'
)
prueba la siguiente consulta, en donde para cada poblaciónn obtienes las distintas personas que ocupan un cargo, si guieres añadir mas cargos es cuestion de insertar un LEFT JOIN por cada nuevo cargo:
Código SQL
[-] SELECT poblacion.Codigo,
poblacion.nombre,
presidente.codigo AS codPre,
presidente.nombre AS presidente,
secretario.codigo AS codSecr,
secretario.nombre AS Secretario
FROM `poblacion`
LEFT JOIN (
persona presidente
INNER JOIN electos ele33
ON presidente.codPrv = ele33.codPrv
AND ele33.codigo = presidente.codigo
AND ele33.cargo = 33 -- codigo del presidente
) ON presidente.codPrv = poblacion.codPrv AND presidente.poblacion = poblacion.codigo
LEFT JOIN (
persona secretario
INNER JOIN electos ele34
ON secretario.codPrv = ele34.codPrv
AND ele34.codigo = secretario.codigo
AND ele34.cargo = 34 -- codigo del secretario
) ON secretario.codPrv = poblacion.codPrv AND secretario.poblacion = poblacion.codigo
where poblacion.codigo=1837