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

[SOLUCIONADO] Consulta con y sin relaciones

Estas en el tema de Consulta con y sin relaciones en el foro de Mysql en Foros del Web. Buenas gente de Foros, tengo el siguiente problema espero me puedan ayudar... Tengo las siguientes tablas con sus respectivos campos Usuario: * nombre * apellidos ...
  #1 (permalink)  
Antiguo 06/12/2012, 19:57
Avatar de Jemonge  
Fecha de Ingreso: enero-2011
Mensajes: 28
Antigüedad: 13 años, 11 meses
Puntos: 0
Consulta con y sin relaciones

Buenas gente de Foros, tengo el siguiente problema espero me puedan ayudar...

Tengo las siguientes tablas con sus respectivos campos


Usuario:
* nombre
* apellidos
* telefono
* empresa
* categoria


Categoria:
* idCategoria
* categoria

Empresa:
* idEmpresa
* empresa

Lo que necesito es realizar una consulta que me muestre la información de todos los usuarios relacionados con las dos ultimas tablas, el problema es que en la tabla usuarios hay algunos que no tienen empresa, es decir tienen como empresa el valor NULL.

Estaba utilizando la siguiente consulta pero no me funciona, solo me muestra los usuarios que tienen empresa

Select *
From usuario as u, categoria as c, empresa as e
Where (u.categoria = c.idCategoria) and (u.empresa = e.idEmpresa)

Espero me puedan ayudar,

Saludos...
  #2 (permalink)  
Antiguo 06/12/2012, 23:09
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Consulta con y sin relaciones

Debes usar JOIN, unir tablas en el WHERE es poco eficiente, y para que traiga registros que no tienen coincidencia en las demás tablas usas LEFT JOIN:
http://dev.mysql.com/doc/refman/5.0/es/join.html
Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Etiquetas: rapido, relaciones
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 01:26.