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

[SOLUCIONADO] Consulta para traer datos de varias tablas

Estas en el tema de Consulta para traer datos de varias tablas en el foro de Mysql en Foros del Web. Buenos días gente, perdón de ante mano si le pifio donde va esta consulta o algo pero es la primera vez que uso este foro. ...
  #1 (permalink)  
Antiguo 24/09/2015, 17:27
 
Fecha de Ingreso: septiembre-2015
Mensajes: 3
Antigüedad: 9 años, 2 meses
Puntos: 0
Pregunta Consulta para traer datos de varias tablas

Buenos días gente, perdón de ante mano si le pifio donde va esta consulta o algo pero es la primera vez que uso este foro.
Tengo una consulta:
Tengo 3 tablas (sin relaciones, lo dejaron así) a simples rangos serian:
1) Tabla usuario: dni, nombre, proceso
2) Tabla programas: programa, proceso
3) Tabla realizados: dni, programa , proceso
(La tabla usuario solo datos del usuario, la tabla programas la lista de programas en que se puede capacitar un usuario y a que proceso pertenece cada programa y la tabla realizados que cuando un usuario se capacita en un un programa se insertan esos datos el dni del usuario, el programa en que se capacito y el proceso al que pertenece ese programa).
Soy muy, muy, muy pichon con mysql por lo que traer los siguiente datos me esta dando un dolor de cabeza:
1) Traer los datos del usuario según los programas realizados q ya lo hice con un inner entre tabla usuario y tabla realizados por el dni)
2) Traer los programas en que no esta capacitado el usuario que formen parte del proceso en el que el trabaja actualmente.
(En la tabla usuario tengo el proceso en el que trabaja actualmente siempre actualizado, en la tabla realizados tengo los programas de todos los procesos en los que se capacito a lo largo del tiempo y en la tabla programa todos los programas y el proceso al que pertenece cada uno).
Si me dan una mano con esta ultima consulta lo agradecería, no se si ya estoy quemado por estar tirando cogido desde hace 10 hs pero no hay chance, no me sale.
Muchas gracias y saludos a todos.

Última edición por BlindadoXp; 24/09/2015 a las 17:34
  #2 (permalink)  
Antiguo 24/09/2015, 18:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta para traer datos de varias tablas

Muestra el código que has intentado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 24/09/2015, 18:35
 
Fecha de Ingreso: septiembre-2015
Mensajes: 3
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Consulta para traer datos de varias tablas

Hey! Muchas gracias por responder, No tengo el codigo aca, ya volvi del trabajo.
Mañana cuando vuelva al trabajo puedo postear la consulta.
Estoy escribiendo al aire pero creo que era así y el error era que la subconsulta retornaba mas de una fila.

Código SQL:
Ver original
  1. SELECT p.proceso, p.programa FROM usuario u
  2. INNER JOIN programas p ON u.proceso = p.proceso
  3. WHERE p.programa NOT LIKE
  4. (SELECT pr.programas FROM prueba pr INNER JOIN programas p ON pr.programas = p.programa)

Hasta aca me traia todos los programas que corresponden al proceso donde trabaja actualmente la persona:
Código SQL:
Ver original
  1. SELECT p.proceso, p.programa FROM usuario u INNER JOIN programas p ON u.proceso = p.proceso

Y esta me traia los programas en que se capacito esa persona:
Código SQL:
Ver original
  1. SELECT pr.programas FROM prueba pr INNER JOIN programas p ON pr.programas = p.programa

Mi amigo, ya no tengo ni idea que estoy haciendo jaja.

Última edición por gnzsoloyo; 25/09/2015 a las 08:02 Razón: Codigo SQL sin etiquetar.
  #4 (permalink)  
Antiguo 25/09/2015, 07:44
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Consulta para traer datos de varias tablas

si esa es tu consulta tienes un error en el like, no puedes poner un like con diferentes campos, por eso el error de que tu consulta retorna mas de un valor, en lugar de like debes usar IN o EXISTS
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 25/09/2015, 08:00
 
Fecha de Ingreso: septiembre-2015
Mensajes: 3
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Consulta para traer datos de varias tablas

Si, estaba re quemado ayer ya no entendía nada, recién llegue y ya lo solucione. Muchas gracias por darme una mano. Saludos!

Código SQL:
Ver original
  1. SELECT * FROM programas WHERE NOT EXISTS
  2. (SELECT programa FROM pruebas WHERE pruebas.programa = programas.programa)
  3. AND EXISTS (SELECT * FROM usuario WHERE usuario.proceso = programas.proceso)

Etiquetas: Ninguno
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:16.