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

mysql consulta anidad error

Estas en el tema de mysql consulta anidad error en el foro de Mysql en Foros del Web. hola amigos tengo una consulta pero cuando la corro me sale error espero puedan verlo, lo que quiero hacer es lo siguiente---- se los mostrare ...
  #1 (permalink)  
Antiguo 10/11/2014, 08:49
 
Fecha de Ingreso: septiembre-2014
Mensajes: 24
Antigüedad: 10 años, 1 mes
Puntos: 0
mysql consulta anidad error

hola amigos tengo una consulta pero cuando la corro me sale error espero puedan verlo,
lo que quiero hacer es lo siguiente----
se los mostrare en 2 consultas aparte bn y despues la anidada......

select id_curso from asignatura where id_docente = 677547;

select * from estudiante where id_curso='".$row1[id_curso]."';

ahora bn cuando las coloco anidadas

select *.estudiante from estudiante
INNER JOIN curso ON curso.id_curso = asignatura.id_curso
where asignatura.id_docente = 677547;

cual seria el erro ..gracias de antemano

las tblas serian asi

estudiante __________asignatura __________ curso
id_estudiante ________id_asignatura ________ id_curso
nombre ____________id_docente _________nombre
id_curso ___________ id_curso


lo que quiero con la consulta es extraer los alumnos dependiendo del docente ...digamas un docente dicta en un curso Z...saber todos los alumnos
  #2 (permalink)  
Antiguo 10/11/2014, 08:56
 
Fecha de Ingreso: octubre-2014
Ubicación: Buenos Aires
Mensajes: 278
Antigüedad: 10 años, 1 mes
Puntos: 12
Respuesta: mysql consulta anidad error

Hola badnesslombriz,

Tu código (en ningun momento haces el join con la tabla asignatura)
Código MySQL:
Ver original
  1. select *.estudiante from estudiante es
  2. INNER JOIN curso ON curso.id_curso = asignatura.id_curso
  3. where asignatura.id_docente = 677547;


Código modificado (Agregue alias a las tablas)
Código MySQL:
Ver original
  1. select es.*
  2. from estudiante es inner join
  3.         curso cur on es. id_curso = cur. id_curso inner join
  4.         asignatura asig on es.id_curso = asig.id_curso
  5.         asig.id_docente = 677547

Espero te sirva.

Saludos.
__________________
http://www.sp-vision.net
  #3 (permalink)  
Antiguo 10/11/2014, 09:24
 
Fecha de Ingreso: septiembre-2014
Mensajes: 24
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: mysql consulta anidad error

amigo gracias por ayudarme ,,,lo importante esque ya no muestra el erro :* ...pero no me muestra las consultas ... :(
  #4 (permalink)  
Antiguo 10/11/2014, 09:28
 
Fecha de Ingreso: octubre-2014
Ubicación: Buenos Aires
Mensajes: 278
Antigüedad: 10 años, 1 mes
Puntos: 12
Respuesta: mysql consulta anidad error

Puedes pegar el código que tienes ahora.?
__________________
http://www.sp-vision.net
  #5 (permalink)  
Antiguo 10/11/2014, 09:35
 
Fecha de Ingreso: septiembre-2014
Mensajes: 24
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: mysql consulta anidad error

fuel mismo ke tu me diste


lo porbe con este codigo y me funcion omitiendo la consulta de asignatura

select es.* from estudiante es inner join curso cur on es.id_curso = cur.id_curso where cur.id_curso = 3333

Última edición por badnesslombriz; 10/11/2014 a las 09:37 Razón: pero le le coloco la parte de asignatura me sale 0 consultas
  #6 (permalink)  
Antiguo 10/11/2014, 09:37
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: mysql consulta anidad error

SI no te muestra resultados con un INNER JOIN bien construido, es que no teines registros qeu cumplan todas las condiciones del INNER JOIN y el WHERE al mismo tiempo.
Deberías en ese caso verificar los datos de cada tabla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 10/11/2014, 10:02
 
Fecha de Ingreso: septiembre-2014
Mensajes: 24
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: mysql consulta anidad error

jajaja disculpara fue de exito muchisimas gracias ....el error era mio estaba ingresando mal el id del docente
  #8 (permalink)  
Antiguo 11/11/2014, 08:27
 
Fecha de Ingreso: septiembre-2014
Mensajes: 24
Antigüedad: 10 años, 1 mes
Puntos: 0
otra ves consultas anidadas :(

holaa amigos otraves yo con el inner join
miren lo que hice es lo siguiente se los mostrare en la forma simple

Código MySQL:
Ver original
  1. SELECT * FROM asignatura WHERE id_curso='444444'
Código MySQL:
Ver original
  1. SELECT * FROM areas WHERE id_areas= '".$fila2["id_areas"]."'
Código MySQL:
Ver original
  1. SELECT * FROM docentes WHERE id_docente= '".$fila2["id_docente"]."'
Código MySQL:
Ver original
  1. SELECT * FROM curso WHERE id_curso= '".$fila2["id_curso"]."'
asi lo probe y funcio jeje
pero haciendo de la fomar de una consulta anidad ...me bota 0 registros

Código SQL:
Ver original
  1. SELECT asig.nombre, asig.fecha_inicio, asig.fecha_final, are.nombre, doce.id_docente, doce.nombre_1, cur.id_curso, cur.nombre
  2. FROM asignatura asig
  3. INNER JOIN areas are ON asig.id_areas=are.id_areas
  4. INNER JOIN docentes doce ON asig.id_docente=doce.id_docente
  5. INNER JOIN curso cur ON asig.id_curso=cur.id_curso
  6. WHERE asig.id_curso=444444

Cita:
Editado Código de programación no permitido en foros de Bases de Datos. Leer las normas del foro, por favor.
espero alguien pueda eacharme una manita graciasss ||||!!!!!!!!!

Última edición por gnzsoloyo; 11/11/2014 a las 08:46
  #9 (permalink)  
Antiguo 11/11/2014, 08:46
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: mysql consulta anidad error

No abras nuevos temas para tratar el mismo problema. Continúa con el que ya estaba.

Cita:
pero haciendo de la fomar de una consulta anidad ...me bota 0 registros
Eso no es un error. El problema que tienes es que no hay registros que cumplan con la condición del INNER JOIN y el WHERE al mismo tiempo.

El INNER JOIN requiere que sí o sí existan registros relacionables entre todas las tablas involucradas. Con que una sol ano lo sposea, devolverá cero registros.

Por otro lado, si una de las relaciones es opcional, esa sola debería usar LEFT JOIN y no INNER, pero dependerá de larelación y lo mandatorio de esos datos.

Pruebalo así:
Código MySQL:
Ver original
  1. SELECT asig.nombre, asig.fecha_inicio, asig.fecha_final, are.nombre, doce.id_docente, doce.nombre_1, cur.id_curso, cur.nombre
  2. FROM asignatura asig
  3.   INNER JOIN areas are ON asig.id_areas=are.id_areas
  4.   INNER JOIN docentes doce ON asig.id_docente=doce.id_docente
  5.   INNER JOIN curso cur ON asig.id_curso=cur.id_curso ;
Si te devuelve datos, es porque hay relaciones válidas. Si no te devuelve datos, pero tienes registros en todas las tablas, entonces lo que tienes son datos sucios.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 11/11/2014, 09:02
 
Fecha de Ingreso: septiembre-2014
Mensajes: 24
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: mysql consulta anidad error

holaaa mil gras y disculpa por abrir nuevo tem ..como me habían dicho que nueva consulta nuevo tema ,,,:D
me funciona pero lo que quiero es que me haga la consulta dependiendo el id_curso que ingresen gracias
  #11 (permalink)  
Antiguo 11/11/2014, 09:07
 
Fecha de Ingreso: septiembre-2014
Mensajes: 24
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: mysql consulta anidad error

esto ya me teiene confundido :P
  #12 (permalink)  
Antiguo 11/11/2014, 09:13
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: mysql consulta anidad error

Cita:
como me habían dicho que nueva consulta nuevo tema
Nadie ha dicho eso. Consulta nueva es de tema nuevo, y estás preguntando por un problema que es continuacion de otro post, ergo es el mismo tema.

Cita:
D
me funciona pero lo que quiero es que me haga la consulta dependiendo el id_curso que ingresen gracias
¿Ingresen en qué contexto?

Esa consulta requiere que el curso tenga si o si docentes asignados al momento de realizarla. Si ese curso no los tiene, o no se relacionó a una área, entonces no devolverá datos.

Me parece más un problema de logica de validaciones funcionales de aplicación, que un problema de consultas a la base. A mi entender lo que no estás haciendo bien es la etapa de diseño de las vistas y sus validaciones, tema off topic.

A ver si se entiende: Hay muchas formas de diseñar lo que pareces decir. Pero por lo pronto, si un usuario quiere saber qué cursos están disponibles, necesitas una validación que te devuelva el listado completo de cursos que tienen asignados docentes, y de ese listado es de donde debe elegir el usuario. Ponerse a buscar un código que puede no tener registrado cursos, es un error de lógica de negocio.
Si, por otro lado, se pretende hacer una inscripción para un curso que aun no se ha abierto, y en consecuencia no tiene docente asignado, lo que se valida es qué cursos pueden existir , y en todo caso se trataría de un registro de pre-inscripcion o pre-apertura de cursos. Eso implicaría cambios en el modelo de datos para dar soporte a un subesquema que administre tal contingencia de negocio.
Recién cuando se relacione a un curso con un docente, este estaría plenamente disponible. La condición de un numero mínimo de asistentes a un curso para su apertura es algo que se debe definir como regla de negocio, y no se puede administrar en la base de datos. Es responsabilidad de la aplicación
¿Se entiende?
En ese contexto, hay cosas que se pueden validar por parametrizaciones en tablas específicas, pero no son producto de consultas a las tablas donde finalmente se verificarán, cuando ya exista disponibilidad.

Es por estas consideraciones que digo que en mi opinión lo que te esta faltando es un análisis mejor de los procesos y sus validaciones en la aplicación.

No confundas los procesos del sistema, con las reglas del negocio, o con los datos, no son exactamente lo mismo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 11/11/2014 a las 10:10
  #13 (permalink)  
Antiguo 11/11/2014, 18:11
 
Fecha de Ingreso: septiembre-2014
Mensajes: 24
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: mysql consulta anidad error

huyyy pana mil gracias me has echos dar cuenta del error gracias de verdad ...
y esque algunos datos no estaban ..cclaro con razon no me generaban las consultas ...pero no estaba tan perdido a la hora de generar las consutasl con inner join

Etiquetas: anidadas, join, quiero, registro, select, sql, ves
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 09:44.