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

[Mostras registros]

Estas en el tema de [Mostras registros] en el foro de Bases de Datos General en Foros del Web. Hola!! Me gustaría hacer una consulta un tanto especial, la cual consiste en mostrar los registros de una tabla que cumple cierta restricción (hasta ahí ...
  #1 (permalink)  
Antiguo 21/07/2004, 10:25
 
Fecha de Ingreso: mayo-2004
Mensajes: 101
Antigüedad: 20 años
Puntos: 0
[Mostras registros]

Hola!!

Me gustaría hacer una consulta un tanto especial, la cual consiste en mostrar los registros de una tabla que cumple cierta restricción (hasta ahí bien) y uno en concreto que no las cumple.

Lo estoy intentanco con LEFT JOIN:
//La consulta pretende mostrar: todos los propietarios que han sido dados de alta por un usuario que pertenezca a la oficina del usuario que se ha logeado actualmente en la aplicación, más el propietario cuyo IDPROP = 1. (Esto último no lo muetra, y este propietario no cumple el WHERE...)

SELECT T1.IDPROP, T1.IDUSUARIO, T2.IDUSUARIO, T2.IDOFICINA, T1.NOMBRE, T1.APELLIDO1, T1.APELLIDO2, T1.TFIJO, T1.TMOVIL
FROM is_propietario T1, is_usuarios T2
LEFT JOIN is_propietario T3 ON T3.IDPROP =1
WHERE T1.IDUSUARIO = T2.IDUSUARIO AND T1.IDOFICINA = T2.IDOFICINA AND T1.IDOFICINA='" . $_SESSION['idoficina'] . "'";
  #2 (permalink)  
Antiguo 22/07/2004, 01:12
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
¿Probaste a realizar un UNION?, esta instrucción te permite el resultado de varias selects en una.
Código:
SELECT T1.IDPROP, T1.IDUSUARIO, T2.IDUSUARIO, T2.IDOFICINA, T1.NOMBRE, T1.APELLIDO1, T1.APELLIDO2, T1.TFIJO, T1.TMOVIL
FROM is_propietario T1, is_usuarios T2
WHERE T1.IDUSUARIO = T2.IDUSUARIO AND T1.IDOFICINA = T2.IDOFICINA AND T1.IDOFICINA='" . $_SESSION['idoficina'] . "'"
union all
SELECT T1.IDPROP, T1.IDUSUARIO, T2.IDUSUARIO, T2.IDOFICINA, T1.NOMBRE, T1.APELLIDO1, T1.APELLIDO2, T1.TFIJO, T1.TMOVIL
FROM is_propietario T1, is_usuarios T2
where T1.IDUSUARIO = T2.IDUSUARIO AND T1.IDOFICINA = T2.IDOFICINA AND T1.IDPROP =1
tal vez, también te valiera hacerlo en una únca select de la siguiente manera
Código:
SELECT T1.IDPROP, T1.IDUSUARIO, T2.IDUSUARIO, T2.IDOFICINA, T1.NOMBRE, T1.APELLIDO1, T1.APELLIDO2, T1.TFIJO, T1.TMOVIL
FROM is_propietario T1, is_usuarios T2
WHERE T1.IDUSUARIO = T2.IDUSUARIO AND T1.IDOFICINA = T2.IDOFICINA AND T1.IDOFICINA='" . $_SESSION['idoficina'] . "'"
OR
T1.IDUSUARIO = T2.IDUSUARIO AND T1.IDOFICINA = T2.IDOFICINA AND T1.IDPROP =1
En este sentido, tendrás que buscar cual te da mejor rendimiento.
Supongo, al realizar esto, que aunque el IDPROP=1 es un caso especial, si cumple la condición de cruce con la tabla usuarios (alguien lo tiene que haber dado de alta).
Espero que esto te ayude.
Un saludo.
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 13:33.