Código MySQL:
Ver original
AL HACER ESE SELECT CON INNER JOIN NO ME ARROJA NINGUN REGISTRO. POR FAVOR ALGUIEN ME YUDE.. el resto del codigo me corre normal solo el select no me bota ningun registro pero las tabla si tienen registros
| |||
Error al hacer select no me llama ningun registro ESTA ES MI CODIGO PARA CREAR LAS TABLAS Y SUS RELACIONES PERO EL SELECT NO ME BOTA NINGUN REGISTRO
Código MySQL:
Ver original AL HACER ESE SELECT CON INNER JOIN NO ME ARROJA NINGUN REGISTRO. POR FAVOR ALGUIEN ME YUDE.. el resto del codigo me corre normal solo el select no me bota ningun registro pero las tabla si tienen registros |
| ||||
Respuesta: Error al hacer select no me llama ningun registro Si tabla2.idtabla1_2 y tabla2.idtabla1_1 contienen valores diferentes, es imposible que esa consulta devuelva datos. Mira bien lo que estás pidiendo:
Código MySQL:
Con esa sintaxis, sólo devolverá datos cuando tabla2.idtabla1_2 y tabla2.idtabla1_1 sean iguales entre sí.Ver original Cuando llamas a la misma tabla para cruzarla con dos declaraciones diferentes de FK en otra, debes llamarla dos veces. Para poder hacer eso debes obligatoriamente usar alias. Además, la sentencia contiene un error de sintaxis: INNER JOIN exige el uso de ON para realizar la relación.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |
| |||
Respuesta: Error al hacer select no me llama ningun registro Hola Ozkitar: Tal pareciera que no haz puesto atención a lo que te han pedido que hagas... este es el tercer post que abres acerca del mismo tema en lugar se seguir con el mismo post hasta darlo por cerrado. En el Post anterior Ribon te pedia que revisaras el uso de JOIN's en las consultas, veo que lo estás utilizando, pero no lo estás haciendo correctamente... los JOIN's UTILIZAN LA CLÁUSULA ON PARA HACER LAS UNIONES, no el WHERE... tal como lo estás poniendo se realiza un producto cartesiano entre las tablas. Segundo, la consulta no te está egresando ningún registro pues la condición que pones ES IMPOSIBLE DE QUE OCURRA, al menos con los datos que estás colocando... al poner esto:
Código:
estás diciendo que el idtabla1_1 y el idtabla1_2 SEAN IGUALES, cosa que nunca sucede... matemáticamente estarías diciendo lo siguienteWHERE tabla2.idtabla1_2 = tabla1.idtabla1 AND tabla2.idtabla1_1 = tabla1.idtabla1
Código:
No estoy seguro de qué es lo que quieres obtener como resultado, pero veamos si esto te sirve. Al tener una REFERENCIA DOBLE en tu tabla2 (es decir dos campos distintos apuntando hacia la tabla1) debes usar DOS VECES LA TABLA1 utilizando un alias, para poder hacer cada join por separado.A = B y C = B por lo tanto A = C Checa este script:
Código MySQL:
Ver original Observa que la tabla1 se usa dos veces con los alias (T1A y T1B). Si esto no es lo que necesitas por favor dinos qué es lo que esperas de salida a partir de tus datos. Cita: Leo. EDITO: el compañero gnzsoloyo se adelantó 5 segundos a mi respuesta, es prácticamente la misma. Saludos Saludos |
| |||
Respuesta: Error al hacer select no me llama ningun registro Cita:
Iniciado por leonardo_josue Hola Ozkitar: Tal pareciera que no haz puesto atención a lo que te han pedido que hagas... este es el tercer post que abres acerca del mismo tema en lugar se seguir con el mismo post hasta darlo por cerrado. En el Post anterior Ribon te pedia que revisaras el uso de JOIN's en las consultas, veo que lo estás utilizando, pero no lo estás haciendo correctamente... los JOIN's UTILIZAN LA CLÁUSULA ON PARA HACER LAS UNIONES, no el WHERE... tal como lo estás poniendo se realiza un producto cartesiano entre las tablas. Segundo, la consulta no te está egresando ningún registro pues la condición que pones ES IMPOSIBLE DE QUE OCURRA, al menos con los datos que estás colocando... al poner esto:
Código:
estás diciendo que el idtabla1_1 y el idtabla1_2 SEAN IGUALES, cosa que nunca sucede... matemáticamente estarías diciendo lo siguienteWHERE tabla2.idtabla1_2 = tabla1.idtabla1 AND tabla2.idtabla1_1 = tabla1.idtabla1
Código:
No estoy seguro de qué es lo que quieres obtener como resultado, pero veamos si esto te sirve. Al tener una REFERENCIA DOBLE en tu tabla2 (es decir dos campos distintos apuntando hacia la tabla1) debes usar DOS VECES LA TABLA1 utilizando un alias, para poder hacer cada join por separado.A = B y C = B por lo tanto A = C Checa este script:
Código MySQL:
Ver original Observa que la tabla1 se usa dos veces con los alias (T1A y T1B). Si esto no es lo que necesitas por favor dinos qué es lo que esperas de salida a partir de tus datos. Leo. MUCHAS GRACIAS LEO!! ESO ES LO QUE QUIERO QUE SALGA PERO ALGO MAS PRECISO
Código MySQL:
Ver original QUIERO QUE MI TABLA QUEDE DE ESA MANERA.. PERDONEN MI IGNORANCIA SOY NUEVO EN ESTO VOY EN LA PRIMERA SEMANA DE CLACES INTRODUCTORIA CON MySQL y me dio esta curiosidad! Gracias de antemano! |
Etiquetas: |