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

consulta sobre dos tablas y doble condición

Estas en el tema de consulta sobre dos tablas y doble condición en el foro de Bases de Datos General en Foros del Web. Hola. Necesito hacer una consulta sobre una tabla dependiendo del resutlado de otra, se que normalmente se haría con una combinación, pero es que se ...
  #1 (permalink)  
Antiguo 26/11/2006, 03:41
Avatar de julianchoss  
Fecha de Ingreso: julio-2006
Ubicación: Armenia
Mensajes: 26
Antigüedad: 18 años, 3 meses
Puntos: 0
consulta sobre dos tablas y doble condición

Hola.
Necesito hacer una consulta sobre una tabla dependiendo del resutlado de otra, se que normalmente se haría con una combinación, pero es que se tiene q cumplir una condición especial.

En la tabla eventos, tengo registrados todos los eventos disponibles que tengo en mi base de datos.
En la tabla usuarios, estan todos los usuarios registrados en mi base.
ahora, para la relación n a m entre las dos, tengo la tabla usuarioevento en donde solo guardo el id del usuario y el respectivo evento al que esta inscrito.

ahora necesito obtener un listado de los eventos disponibles, exceto en los que ya se encuentra registrado el usuario.

la consulta la estoy haciendo algo asi, pero no se q esta mal:
Código:
select n.id_Evento, n.nombre, n.descripcion, n.fecha
    from evento n, usuarioevento u
    where n.opcional='1' and u.id_Usuario=$var and n.id_Evento=u.id_Evento
$var me indica el id del usuario que esta realizando la consulta, es decir el usuario que tiene registrado algunos eventos.

Gracias por cualquier ayuda posible.
  #2 (permalink)  
Antiguo 26/11/2006, 07:28
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 19 años, 3 meses
Puntos: 7
Cita:
Iniciado por julianchoss Ver Mensaje
ahora necesito obtener un listado de los eventos disponibles, exceto en los que ya se encuentra registrado el usuario.
Sí llevas esas palabras a sql, seguramente obtendrás lo que buscas...

Podría ser algo como:

SELECT tuscampos FROM eventos WHERE tablaunion.usuario <> $usuario

realmente, hay varias formas de hacerlo, donde sólo debes de jugar con la condición de búsqueda...
__________________
Gracias de todas todas
-----
Linux!
  #3 (permalink)  
Antiguo 01/12/2006, 14:05
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
La siguiente consulta te mostrara la informacion de la tabla evento de todos los eventos que no tiene el usuario que especifiques en la variable @idusuario

Código:
SELECT
        E.IDEVENTO, ...., 
FROM
        EVENTO E
WHERE
        NOT EXISTS(SELECT 1 FROM USUARIOEVENTO WHERE IDEVENTO = E.IDEVENTO AND IDUSUARIO = @IDUSUARIO)
La siguiente consulta te mostrará un reporte por usuario y los eventos que no tienen actualmente
Código:
SELECT
        E.IDEVENTO, U.IDUSUARIO
FROM
        USUARIO U
CROSS JOIN
        EVENTO E
LEFT JOIN
        EVENTOUSUARIO EU
        ON
        EU.IDUSUARIO = U.IDUSUARIO
        AND
        EU.IDEVENTO = E.IDEVENTO
WHERE
        EU.IDUSUARIO IS NULL
  #4 (permalink)  
Antiguo 01/12/2006, 14:05
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
Ups, que descortes! sorry, Saludos!!!
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:14.