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

[SOLUCIONADO] Consultar Una tabla y sus relaciones en dos tablas mas

Estas en el tema de Consultar Una tabla y sus relaciones en dos tablas mas en el foro de Mysql en Foros del Web. Hola Amigos, me estoy mareando con esto y no he podido dar con la solucion. Debo hacer una consulta que rescate datos de 3 tablas. ...
  #1 (permalink)  
Antiguo 29/01/2013, 06:29
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 4 meses
Puntos: 145
Consultar Una tabla y sus relaciones en dos tablas mas

Hola Amigos, me estoy mareando con esto y no he podido dar con la solucion.

Debo hacer una consulta que rescate datos de 3 tablas. Las tablas son las siguientes

Código:
USUARIOS
id
id_pais
id_categoria
nombre
Código:
PAISES
id
nombre
Código:
CATEGORIAS
id
nombre
Lo que necesito es que me arroje todos los registros de la tabla USUARIOS y su vez el nombre del pais relacionado y la categoria relacionada.

tengo la siguiente consulta, pero solo estoy relacionando USUARIOS con CATEGORIAS solamente

Código:
SELECT A.nombre, A.id as catID, B.nombre, B.id_categoria, B.id as usID, B.id_pais
FROM categorias A
INNER JOIN usuarios B ON A.id = B.id_categoria

Alguna idea? para ayudar a este humilde samaritano XD.

Saludos y gracias.
__________________
http://chicho.ninja yiaaaa
  #2 (permalink)  
Antiguo 29/01/2013, 06:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Consultar Una tabla y sus relaciones en dos tablas mas

Algo como esto podría servir:
Código MySQL:
Ver original
  1. SELECT ...
  2. FROM usuarios
  3. JOIN categorias ON categorias.id = usuarios.id_categoria
  4. JOIN paises ON paises.id = usuarios.id_pais
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 29/01/2013, 06:54
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 4 meses
Puntos: 145
Respuesta: Consultar Una tabla y sus relaciones en dos tablas mas

Cita:
Iniciado por David Ver Mensaje
Algo como esto podría servir:
Código MySQL:
Ver original
  1. SELECT ...
  2. FROM usuarios
  3. JOIN categorias ON categorias.id = usuarios.id_categoria
  4. JOIN paises ON paises.id = usuarios.id_pais
Gracias David por tu respuesta

Había hecho algo muy similar, pero solo me muestra los usuarios que tengan un id_categoria o id_pais asignado, si este dato no existe no me los muestra, y lo que necesito es lo contrario, volcar toda la tabla usuarios.

Saludos y gracias


EDITOOOOO

Código MySQL:
Ver original
  1. SELECT ...
  2. FROM usuarios
  3. LEFT OUTER JOIN categorias ON categorias.id = usuarios.id_categoria
  4. LEFT OUTER JOIN paises ON paises.id = usuarios.id_pais

Solucionado.

Gracias por tu ayuda David
__________________
http://chicho.ninja yiaaaa
  #4 (permalink)  
Antiguo 29/01/2013, 07:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consultar Una tabla y sus relaciones en dos tablas mas

LEFT JOIN, usa LEFT JOIN:
Código MySQL:
Ver original
  1. SELECT ...
  2. FROM usuarios
  3.     LEFT JOIN categorias ON categorias.id = usuarios.id_categoria
  4.     LEFT JOIN paises ON paises.id = usuarios.id_pais
  5. WHERE 1 OR (categoria.id IS NULL AND paises.id IS NULL)
Ahora bien, esto es innecesario si lo que quieres son los datos de los usuarios solamente, a menos que quieras datos adicionales de las otras tablas...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: consultar, join, registros, relaciones, select, tabla, tablas
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 15:43.