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

como se hace esta consulta??

Estas en el tema de como se hace esta consulta?? en el foro de Bases de Datos General en Foros del Web. Hola gente!... bueno a ver si logro una ayudita.. ya intente todo lo que se me ocurre y nada!.. Espero poder explicarme bien. tengo muchas ...
  #1 (permalink)  
Antiguo 23/05/2009, 09:02
 
Fecha de Ingreso: marzo-2008
Mensajes: 49
Antigüedad: 16 años, 8 meses
Puntos: 0
como se hace esta consulta??

Hola gente!... bueno a ver si logro una ayudita.. ya intente todo lo que se me ocurre y nada!..
Espero poder explicarme bien.
tengo muchas tablas mas, pero supongo q con estas es suficiente para q entiendan lo que quiero hacer...
El problema es el siguiente:
Tengo

Tabla A______________TablaB_____________________TablaC
__juan________________materia1________________mate ria1_____juan
__pepe_______________materia2________________mater ia1_____pepe
_____________________materia3________________mater ia3_____juan
_____________________materia4________________mater ia4_____juan


La consulta que necesito es para que me muestre todas las materias de TablaB que no esten en tablaC por cada persona.


osea que el resultado seria
para juan materia2
para pepe materia2 , materia3, materia4



mmmm... se entiende lo q necesito?? Espero q si...
y gracias de antemano!!
  #2 (permalink)  
Antiguo 23/05/2009, 09:23
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: como se hace esta consulta??

Prueba esta consulta:
Código sql:
Ver original
  1. SELECT t1.nombre, t1.materia FROM tablac RIGHT JOIN
  2.   (SELECT nombre, materia FROM `tablaa`, tablab)t1
  3.     ON t1.nombre=tablac.nombre AND T1.materia = tablac.materia
  4.       WHERE tablac.nombre IS NULL OR tablac.materia IS NULL
  5.           ORDER BY t1.nombre, t1.materia
  #3 (permalink)  
Antiguo 23/05/2009, 09:45
 
Fecha de Ingreso: marzo-2008
Mensajes: 49
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: como se hace esta consulta??

jurena.. gracias por responder...
pero me da "error de sintaxis en la operacion join" y me marca eso que esta en rojo
SELECT t1.nombre, t1.materia

No se bien, pero parece que el join no me deja seleccionar mas de un campo...
  #4 (permalink)  
Antiguo 23/05/2009, 10:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: como se hace esta consulta??

¿Qué base de datos utilizas?¿imagino que MySQL, o no? T1 es el alias y si tu campo se llama materia en ambas tablas debería cogerlo sin problema. Lo he probado y funciona bien antes de hacerte la sugerencia, pero no sabía exactamente el nombre de los campos. Dinos cuáles son los nombres de los campos exactamente y la base que estás utilizando. Supongo que habrás puesto el paréntesis como te lo puse.
  #5 (permalink)  
Antiguo 23/05/2009, 10:36
 
Fecha de Ingreso: marzo-2008
Mensajes: 49
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: como se hace esta consulta??

Cita:
Iniciado por jurena Ver Mensaje
¿Qué base de datos utilizas?¿imagino que MySQL, o no? T1 es el alias y si tu campo se llama materia en ambas tablas debería cogerlo sin problema. Lo he probado y funciona bien antes de hacerte la sugerencia, pero no sabía exactamente el nombre de los campos. Dinos cuáles son los nombres de los campos exactamente y la base que estás utilizando. Supongo que habrás puesto el paréntesis como te lo puse.

En realidad la BD esta en access, sera ese el problema??

Mira, te voy a copiar tal cual lo tengo..


----Alumnos----------------------Materias---------------------------Ambas
----Alum_Codi------------------Mate_Codi------------------------Mate_Codi
-------------------------------------------------------------Alum_Codi

copie tal cual y solo cambie los nombres de los campos... quizas ahi yo cometi el error por interpretar mal.. voy a volver a intentar..
  #6 (permalink)  
Antiguo 23/05/2009, 11:03
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: como se hace esta consulta??

En Access creo que te funcionará esto:
Código sql:
Ver original
  1. SELECT t1.Alum_Codi, t1.Mate_Codi
  2. FROM Ambas RIGHT JOIN [SELECT Alum_Codi, Mate_Codi FROM `alumnos`, materias]. AS t1 ON (T1.Mate_Codi = Ambas.Mate_Codi) AND (t1.Alum_Codi=Ambas.Alum_Codi)
  3. WHERE Ambas.Alum_Codi IS NULL OR Ambas.Mate_Codi IS NULL
  4. ORDER BY t1.Alum_Codi, t1.Mate_Codi;
  #7 (permalink)  
Antiguo 23/05/2009, 11:31
 
Fecha de Ingreso: marzo-2008
Mensajes: 49
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: como se hace esta consulta??

Siii!!... parece q es lo q queria... hay un caso q no esta funcionando pero eso ya lo vere... y cualquier cosa vuelvo por ayuda!...
Podria volver a preguntarte???
No sabes la mano q me has dado..
Te agradezco muchisimo!!
  #8 (permalink)  
Antiguo 23/05/2009, 12:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: como se hace esta consulta??

me alegro, la_pety0205,
vuelve a preguntarnos cuando quieras, para eso está este foro, para ayudar: y es mucha la gente que te ayudará cuando lo solicites.
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 22:58.