| ||||
Respuesta: como usar el join con mas de dos tablas Por ejemplo: Dos tablas: Tres tablas:
Código MySQL:
Cuatro tablas:Ver original
Código MySQL:
¿Se entiende el concepto?Ver original Detalle: Las tablas en realidad no necesariamente van como una cadena de tipo T1 -> T2 -> T3... sino que van vinculados los campos de acuerdo a las relaciones definidas en su diseño de tablas. Buen podrían ser:
Código MySQL:
o cualquier otro requerido por el diseño de la base y la consulta.Ver original Lo que debes tener en cuenta es que los INNER JOIN resulten lógicamente correctos. En ocasiones los resultados parecen estar mal, o tardar mucho tiempo, porque el orden de las tablas es incorrecto, o bien porque la relación produce productos cartesianos por estar mal planteada. Sólo la experiencia te ayuda a saber cómo resolver esos problemas. No hay reglas absolutas.
__________________ ¿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: como usar el join con mas de dos tablas Cita: No le entiendo.por que en select usted pone solo dos tablas y en el join si muestra las tres. Igual. No me ha servido los ejemplos
Iniciado por gnzsoloyo Por ejemplo: Dos tablas: Tres tablas:
Código MySQL:
Cuatro tablas:Ver original
Código MySQL:
¿Se entiende el concepto?Ver original Detalle: Las tablas en realidad no necesariamente van como una cadena de tipo T1 -> T2 -> T3... sino que van vinculados los campos de acuerdo a las relaciones definidas en su diseño de tablas. Buen podrían ser:
Código MySQL:
o cualquier otro requerido por el diseño de la base y la consulta.Ver original Lo que debes tener en cuenta es que los INNER JOIN resulten lógicamente correctos. En ocasiones los resultados parecen estar mal, o tardar mucho tiempo, porque el orden de las tablas es incorrecto, o bien porque la relación produce productos cartesianos por estar mal planteada. Sólo la experiencia te ayuda a saber cómo resolver esos problemas. No hay reglas absolutas. |
| ||||
Respuesta: como usar el join con mas de dos tablas Lo que te he posteado es una muestra genérica de cómo se usa el INNER JOIN con dos, tres y cuatro tablas. En ese sentido, lo que te he puesto es eficiente. En cuanto a las columnas que puse en el SELECT es absolutamente irrelevante para el ejemplo si te invoco datos de una tabla o de todas las tablas. No le agrega ni le saca nada a la efectividad de los INNER JOIN, porque si no existen datos relacionados entre las tablas, de todos modos las que pongo tampoco saldrían. Podría cambiar todos esos nombres por un "*" y el resultado sería el mismo Si no lo estás entendiendo, el problema no está en el ejemplo, sino en la falta de experiencia con esta cláusula. Por cierto: La próxima vez trata de escribir de un modo un poco más cortés. Decir "No me ha servido los ejemplos", resulta muy seco, casi despectivo. Además no me dice nada sobre qué problema te plantea. Yo estoy poniendo ganas en mostrarte cómo se hace. Por lo tuyo de tu parte.
__________________ ¿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: como usar el join con mas de dos tablas Cita: Aka un ejemplo
Código MySQL:
Ver original no se si este mas entendible tienes que tener algun vinculo o enlace entre las dos tablas como el foreign key |
| ||||
Respuesta: como usar el join con mas de dos tablas Es exactamente lo mismo que el primer caso que yo te puse. Si entiendes ese, deberías entender el que yo postee.
__________________ ¿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: como usar el join con mas de dos tablas Por cierto: La próxima vez trata de escribir de un modo un poco más cortés. Decir "No me ha servido los ejemplos", resulta muy seco, casi despectivo. Además no me dice nada sobre qué problema te plantea. Yo estoy poniendo ganas en mostrarte cómo se hace. Por lo tuyo de tu parte.[/QUOTE] gnzsoloyo que pena, lo que escribi no era para ofender a nadie y pido disculpas si eso fue lo que logre disculpeme, lo que quise decir era que habia acoplado los ejemplos a mi necesidad y no me an servido es que habeces soy muy torpe al escribir y es verdad que me hace falta experiencia |
| ||||
Respuesta: como usar el join con mas de dos tablas Bueno, postea el código de las consultas que has intentado... Será más fácil guiarte viendo lo que has hecho.
__________________ ¿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: como usar el join con mas de dos tablas Hola trofserpiente: También tuve la misma sensación cuando leí tus comentarios que lo que comenta gnzsoloyo, pero me da gusto que aclares esa situación. En tu post dices que: Cita: En qué sentido no te sirvieron los ejemplos? es decir la consulta que trataste de poner marcó algún error?, si es así ¿qué error es el que marcó? Si la consulta no arrojó los resultados esperados, entonces puede ser que los JOIN's no sean la solución, tendrías que comenzar por describirnos cómo son tus tablas, poner algunos datos de ejemplo y decirnos qué es lo que quieres obtener. Por lo pronto te pongo un ejemplo con datos para ver si queda más claro el uso de los JOIN's y te puede servir.habia acoplado los ejemplos a mi necesidad y no me an servido
Código MySQL:
Ver original Saludos Leo. |
| ||||
Respuesta: como usar el join con mas de dos tablas Cita:
Iniciado por leonardo_josue Hola trofserpiente: También tuve la misma sensación cuando leí tus comentarios que lo que comenta gnzsoloyo, pero me da gusto que aclares esa situación. En tu post dices que: En qué sentido no te sirvieron los ejemplos? es decir la consulta que trataste de poner marcó algún error?, si es así ¿qué error es el que marcó? Si la consulta no arrojó los resultados esperados, entonces puede ser que los JOIN's no sean la solución, tendrías que comenzar por describirnos cómo son tus tablas, poner algunos datos de ejemplo y decirnos qué es lo que quieres obtener. Por lo pronto te pongo un ejemplo con datos para ver si queda más claro el uso de los JOIN's y te puede servir.
Código MySQL:
Ver original Saludos Leo. bueno ya comencé a entender un poco pero nada bueno lo que pasa es que tengo 3 tablas alumnos--l------<notas..............>--------l--materias id(PK)...................idnotas........................ ......codm(PK) nombres...............id(FK)................................nombre materias ...........................codm(FK)........................................ ............................nota1................. .......................... estoy utilizando esta consulta select * from notas inner join notas on notas.id=alumnos.id inner join notas on notas.codm=materias.codm where alumnos.id='1" pero no me sirve espero que con estoy puedan ayudarme y muchas gracias por toda la ayuda brindada hasta el momento |
| ||||
Respuesta: como usar el join con mas de dos tablas Bueno, supongo que en realidad la consulta es así:
__________________ ¿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: como usar el join con mas de dos tablas Cita: gracias ya vi cuales eran mis errores y supongo que asi se ara para 3,4,5 o mas tablas me nace otra pregunta es obligatorio poner ese alias a cada tabla es la pregunta le agradezco amigo |
| ||||
Respuesta: como usar el join con mas de dos tablas El alias es opcional, pero facilita la escritura y legibilidad de las consultas cuando los usas. Utilizar los nombres completos de las tablas hace muy engorrosa la lectura, y trae complicaciones cuando usas nombres idénticos en tablas distintas. Respecto a lo de las diferentes consultas, no te olvides que en este caso sólo estamos viendo el INNER JOIN, que requiere que existan registros coincidentes siempre. Y sólo devuelve los que existan efectivamente en las relaciones indicadas. Cuando lo que requieres es, por ejemplo, la lista de alumnos que estén inscriptos en una materia, tengan o no notas, esto no aparecerá si usas INNER JOIN. Para esos casos (relaciones opcionales), se usa LEFT JOIN o RIGHT JOIN, pero estos tienen algunas diferencias en el uso respecto del INNER.
__________________ ¿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: como usar el join con mas de dos tablas Cita: gracias hombre y que pena por el mal entendido que bien que existan personas que no le importa regalar el conocimiento
Iniciado por gnzsoloyo El alias es opcional, pero facilita la escritura y legibilidad de las consultas cuando los usas. Utilizar los nombres completos de las tablas hace muy engorrosa la lectura, y trae complicaciones cuando usas nombres idénticos en tablas distintas. Respecto a lo de las diferentes consultas, no te olvides que en este caso sólo estamos viendo el INNER JOIN, que requiere que existan registros coincidentes siempre. Y sólo devuelve los que existan efectivamente en las relaciones indicadas. Cuando lo que requieres es, por ejemplo, la lista de alumnos que estén inscriptos en una materia, tengan o no notas, esto no aparecerá si usas INNER JOIN. Para esos casos (relaciones opcionales), se usa LEFT JOIN o RIGHT JOIN, pero estos tienen algunas diferencias en el uso respecto del INNER. |
Etiquetas: |