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

[SOLUCIONADO] Problema con JOIN

Estas en el tema de Problema con JOIN en el foro de Mysql en Foros del Web. Hola que tal? Estoy teniendo problemas a la hora de hacer un query para mostrar informacion de 2 tablas en 1. Tabla Negocios: id nombre ...
  #1 (permalink)  
Antiguo 20/04/2013, 16:08
Avatar de morfasto  
Fecha de Ingreso: julio-2011
Ubicación: Lima
Mensajes: 291
Antigüedad: 12 años, 9 meses
Puntos: 8
Problema con JOIN

Hola que tal?

Estoy teniendo problemas a la hora de hacer un query para mostrar informacion de 2 tablas en 1.

Tabla Negocios:
id
nombre
departamento
provincia
distrito

En esta tabla se guarda la informacion del negocio junto con el id del departamento, provincia y distrito.

Tabla Ubigeo:
id
name
parent_id

En esta tabla esta guardada toda la informacion geografica del pais. Ya sea departamento, provincia o distrito. Se relacionan por medio del parent id.

Ahora, necesito hacer un query que muestre todos los negocios pero en vez de mostrar los ids de sus departamentos provincias y distritos, que se muestren sus nombres.

Me dijeron que use join para solucionar el problema, ya que necesito hacer 1 solo query para mostrar la info.

Query:
Código MySQL:
Ver original
  1. SELECT * FROM negocios as nego JOIN (SELECT name FROM ubigeo WHERE id = nego.departamento) as dpto

Ese es el query que tengo pero me sale error: Unknown column 'nego.departamento' in 'where clause

En resumen, necesito un query que me de:
id - 1
nombre - Negocio1
departamento - Lima
provincia - Lima
distrito - Lima

En vez de:
id - 1
nombre - Negocio1
departamento - 1
provincia - 101
distrito - 1001

Estoy usando MySQL con MyISAM.

Alguna idea?

Muchas gracias!

Última edición por gnzsoloyo; 20/04/2013 a las 16:36
  #2 (permalink)  
Antiguo 21/04/2013, 03:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Problema con JOIN

Prueba esto a ver si es lo que quieres
Código MySQL:
Ver original
  1.   nego.id,
  2.   nego.nombre,
  3.   ubi1.name departamento,
  4.   ubi2.name provincia,
  5.   ubi3.name distrito
  6. FROM `negocios` nego
  7.   INNER JOIN ubigeo ubi1 ON nego.departamento = ubi1.id
  8.   INNER JOIN ubigeo ubi2 ON nego.provincia  = ubi2.id
  9.   INNER JOIN ubigeo ubi3 ON nego.distrito = ubi3.id

Etiquetas: join, select, sql, tabla
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 14:10.