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

Ayuda con consulta INNER JOIN.

Estas en el tema de Ayuda con consulta INNER JOIN. en el foro de Mysql en Foros del Web. hola estoy enrredado con una consulta que debo hacer pero no encuantro como hacerla , tengo tres tablas " users" iduser nombre ---------------------- "propertys " ...
  #1 (permalink)  
Antiguo 04/02/2011, 10:40
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Ayuda con consulta INNER JOIN.

hola estoy enrredado con una consulta que debo hacer pero no encuantro como hacerla , tengo tres tablas

" users"

iduser
nombre
----------------------
"propertys "

idproperty
nombre
----------------------
"usersxpropertys"

idusertxpropertys
iduser
idproperty
-------------------------
y necesito traer todos los registros de la tabla propertys esten o no esten en usersxpropertys donde P.estado=1 y donde UXP.iduser sea diferente a un id.


no se si esto se pueda hacer.


saludos
  #2 (permalink)  
Antiguo 04/02/2011, 11:18
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Respuesta: Ayuda con consulta INNER JOIN.

Hola, en principio para unir las 3 tablas lo puedes hacer asi:

Código:
SELECT * FROM usersxpropertys
INNER JOIN usersxpropertys.iduser=users.iduser
INNER JOIN usersxpropertys.idproperty=propertys.idproperty
WHERE (...)
Lo que no has puesto de que tabla pertenece P.estado y UXP.iduser, en tal caso, tendrías que unirlo con inner join si son de tablas distintas, en caso contrario, en el paréntesis con puntos escribe la condición, por ejemplo

Código:
WHERE P.estado=1 AND UXP.iduser<>4  (que no sea el 4, por ejemplo)
Saludos
  #3 (permalink)  
Antiguo 04/02/2011, 11:58
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Ayuda con consulta INNER JOIN.

hola gracias por la respuesta , P.estado es de property y UXP.iduser es de usersxpropertys

la consulta asi la tenia mas o menos pensada , pero en caso de que un registro de al tabla propertys no este relacionado en usersxpropertys tambien lo traeria? , porque necesito que me traiga los registro esten o no relacionados.


saludos
  #4 (permalink)  
Antiguo 04/02/2011, 12:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ayuda con consulta INNER JOIN.

ROVERMILLOS,
Cita:
... donde UXP.iduser sea diferente a un id.
No sé si entiendo bien lo que quieres, pero si lo que deseas es que tenga un estado= 1 y que su UXP.iduser sea distinto a un id concreo, pero aceptas que sea nulo, es decir, que no se le haya asignado ningún valor en esa tabla, se podría, creo hacer con LEFT JOIN
SELECT * FROM propertys P LEFT JOIN usersxpropertys UXP ON P.idproperty = UXP.idproperty WHERE P.estado = 1 AND UXP.iduxer != 4
  #5 (permalink)  
Antiguo 04/02/2011, 13:03
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Ayuda con consulta INNER JOIN.

osea mira te pongo un ejemplo

en la tabla user tengo esto

users

id nombre
1 pepito
2 fulanito
3 menganito

propertys

id nombre estado
1 property1 1
2 property2 1
3 property3 1
4 property4 2


usersxpropertys

id idusers idpropertys
1 1 1
2 2 2
3 4 4


digamos el WHERE : WHERE P.estado = 1 AND UXP.iduxer != 3

tendria que traer

1 property1 1
2 property2 1
3 property3 1

entonces el registro 3 de la tabla propertys no esta en usersxproperty pero igual tiene estado 1.

con LEFT JOIN lograria hacer esto?


saludos

Última edición por RIVERMILLOS; 04/02/2011 a las 13:14
  #6 (permalink)  
Antiguo 04/02/2011, 13:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ayuda con consulta INNER JOIN.

Prueba la consulta así:
SELECT * FROM propertys P LEFT JOIN usersxpropertys UXP ON P.id = UXP.id WHERE P.estado = 1 AND UXP.idusers != 3

Última edición por jurena; 04/02/2011 a las 13:26
  #7 (permalink)  
Antiguo 04/02/2011, 13:27
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Ayuda con consulta INNER JOIN.

ya la probe, pero no me retorna los registros que no tengan su id en usersxproperty .....

este tipo de consultas si se pueden lograr.?


saludos
  #8 (permalink)  
Antiguo 04/02/2011, 13:58
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ayuda con consulta INNER JOIN.

Código MySQL:
Ver original
  1. SELECT * FROM propertys P LEFT JOIN usersxpropertys UXP
  2.  ON P.id = UXP.id
  3. WHERE P.estado = 1 AND (UXP.idusers != 3 OR UXP.idusers IS NULL)

Última edición por jurena; 06/02/2011 a las 15:06
  #9 (permalink)  
Antiguo 04/02/2011, 14:44
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Ayuda con consulta INNER JOIN.

hola esta si me funcion muchas gracias por tu ayuda.


saludos

Etiquetas: join
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:00.