Hola amigos:
Soy nuevo en mysql y me he encontrado con un caso complicado que no sé como resolver.
Resulta que tengo una tabla llamada "Municipios" con las columnas "nombre" e "idMunicipio". Por otro lado, tengo la tabla "Entidades" donde una de las columnas es "idMunicipio", ya que una entidad tiene que pertenecer a un municipio. Y por otro lado, tengo la tabla "Personal" que también tiene una columna "idMunicipio".
Quiero hacer una consulta donde quiero sacar los datos de una persona, por ejemplo:
Municipio de trabajo, Apellidos, Nombre, Municipio de la persona
Por lo tanto, Municipios.nombre tiene que ser seleccionado dos veces, pero para distintas condiciones, para el primer caso quiero que Entidades.idMunicipio=Municipios.idMunicipio y para el segundo caso quiero que Personal.idMunicipio=Municipios.idMunicipio
He intentado hacer una subconsulta para el primer caso, algo así:
Código MySQL:
Ver originalSELECT (SELECT Municipios.nombre
FROM Personal
, Contratos
, Municipios
, Entidades
, Tipos
WHERE Entidades.idMunicipio
=Municipios.idMunicipio
AND Contratos.idPersona
=Personal.idPersona
AND Contratos.idEntidad
=Entidades.idEntidad
AND Contratos.idTipo
=1), Personal.apellidos
, Personal.nombre
,Municipios.nombre
FROM Personal
, Contratos
, Municipios
, Entidades
, Tipos
WHERE Personal.idMunicipio
=Municipios.idMunicipio
AND Contratos.idPersona
=Personal.idPersona
AND Contratos.idEntidad
=Entidades.idEntidad
AND Contratos.idTipo
=1
Pero sólo me funciona en el caso de que se encuentre una sola persona. En caso de que se encuentren más, no funciona. Supongo que el problema está en que la subconsulta devuelve varias filas, pero no sé cómo resolverlo.
Espero que alguien me pueda ayudar, gracias de antemano