Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Seleccionar dos veces un mismo campo para distintas condiciones

Estas en el tema de Seleccionar dos veces un mismo campo para distintas condiciones en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/11/2015, 07:06
 
Fecha de Ingreso: noviembre-2015
Mensajes: 1
Antigüedad: 8 años, 5 meses
Puntos: 0
Seleccionar dos veces un mismo campo para distintas condiciones

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 original
  1. SELECT (SELECT Municipios.nombre FROM Personal, Contratos, Municipios, Entidades, Tipos WHERE Entidades.idMunicipio=Municipios.idMunicipio
  2. AND Contratos.idPersona=Personal.idPersona AND Contratos.idEntidad=Entidades.idEntidad AND Contratos.idTipo=1),
  3. Personal.apellidos, Personal.nombre,Municipios.nombre FROM Personal, Contratos, Municipios, Entidades, Tipos WHERE Personal.idMunicipio=Municipios.idMunicipio
  4. 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
  #2 (permalink)  
Antiguo 04/11/2015, 07:21
 
Fecha de Ingreso: enero-2015
Ubicación: Cordoba, Andalucía
Mensajes: 111
Antigüedad: 9 años, 3 meses
Puntos: 15
Respuesta: Seleccionar dos veces un mismo campo para distintas condiciones

Tienes que indexar campos, relacionar las tablas y hacer una consulta INNER JOIN

Un ejemplo sería

Código SQL:
Ver original
  1. SELECT p.nomobre, p.apellido, m.municipio, t.municipio_trabajo
  2. FROM personal p
  3. INNER JOIN municipios m ON p.id_municipio = m.id_municipio
  4. INNER JOIN municipio_trabajo t ON p.id_municipio_trabajo = t.id_municipio_trabajo
  5. WHERE p.id = $id_usuario

Etiquetas: campo, condiciones, distintas, select, sql, tabla, veces
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:21.