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

Consulta sql para obtener la diferencia

Estas en el tema de Consulta sql para obtener la diferencia en el foro de Bases de Datos General en Foros del Web. Buenas, estoy intentando realizar una consulta basada en obtener las actividades a las que un cliente se puede apuntar excluyendo a las que asiste. El ...
  #1 (permalink)  
Antiguo 26/11/2012, 10:56
 
Fecha de Ingreso: noviembre-2012
Mensajes: 184
Antigüedad: 11 años, 5 meses
Puntos: 0
Consulta sql para obtener la diferencia

Buenas,
estoy intentando realizar una consulta basada en obtener las actividades a las que un cliente se puede apuntar excluyendo a las que asiste. El problema es que he realizado la siguiente consulta con el operador '!=' y '<>' y no obtengo de la consulta el resultado correcto.
La consulta que es errónea es:
Código SQL:
Ver original
  1. SELECT actividad.id,actividad.nombre
  2. FROM actividad, (SELECT actividad FROM grupo,asiste WHERE alumno=$cliente AND grupo.id=asiste.grupo AND f_baja IS NULL) AS ActsCliente
  3. WHERE ActsCliente.actividad<>actividad.id
  4. GROUP BY actividad.id;

Donde asiste es una tabla con los atributos del grupo de la actividad a la que asiste el id del cliente (ambos son clave primaria) junto a la fecha de alta y de baja del grupo; grupo tiene los atributos de actividad que es el id de la actividad de la que es el grupo; y la tabla actividad almacena el id que es la clave primaria junto a un nombre de la actividad.

Si alguien puede ayudarme me sería de gran utilidad ya que no se que modificar para que me realice bien la consulta.

Un saludo y gracias!

Última edición por gnzsoloyo; 26/11/2012 a las 11:32 Razón: Sin etiquetado y estructuracion incorrecta de código SQL.
  #2 (permalink)  
Antiguo 26/11/2012, 11:07
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Consulta sql para obtener la diferencia

Usa JOINS para unir las tablas y une las tres juntas, no de dos en dos. Por otro lado, ¿puedes poner un ejemplo con datos de lo que quieres exactamente?
  #3 (permalink)  
Antiguo 26/11/2012, 17:09
 
Fecha de Ingreso: noviembre-2012
Mensajes: 184
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Consulta sql para obtener la diferencia

Por ejemplo, un cliente se puede apuntar a Gimnasia, Musculación y Judo, pero este ya asiste a un grupo de Judo por lo que en un select de un formulario solo quiero que aparezca Gimnasia y Musculacion quitando las actividades a las que este esta dado de alta actualmente, ¿Me entiendes?
Un saludo y gracias.
  #4 (permalink)  
Antiguo 27/11/2012, 04:10
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: Consulta sql para obtener la diferencia

Pues haces un cruce de las tres tablas y coges sólo los que no esten

¿Qué guardas en actividad? ¿Y en grupo? ¿Y en asiste?

Etiquetas: diferencia, sql, tabla
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 05:35.