MySQL tiene una sintaxis bastante flexible comparada con MS SQL al momento de hacer JOINs. En MySQL puedes hacer un JOIN de dos maneras, sin embargo, sería conveniente hacerlo de la forma de MS SQL de manera de que el código sea más portable.

En MySQL pudes hacer un múltiple JOIN (JOIN entre varias tablas) de la siguiente manera:
En esta consulta, los JOINS son ejecutados secuencialmente, primero se hacer el primer JOIN, cuando está listo se hace el siguiente, luego el siguiente y así sucesivamente.
En MS SQL, la sintaxis para el múltiple JOIN necesita hacerse de la siguiente forma (también soportada por MySQL):
En esta consulta, los JOINs son ejecutados de adentro hacia afuera. Primero se ejecuta el JOIN entre paréntesis más internos, luego el siguiente fuera de los paréntesis, luego el siguiente y así sucesivamente.
Vía: VXT
11 Respuestas para "Múltiple INNER JOIN – MySQL vs MS SQL"
claro y conciso,, se agradece.
un saludo
Exelente resumen me ayudo mucho
Gracias
Gracias por los comentarios.
Saludos.
Ammm… dentro de la consulta de la tabla2 y tabla3, creo que se le paso por alto al compañero la relación:
(tabla2 INNER JOIN tabla3 ON tabla2.id2=table2.id2)
no es?:
(tabla2 INNER JOIN tabla3 ON tabla2.id2=table3.id2)
Saludos.
Es correcto lo que dices, se me ha pasado por alto
Ya lo he corregido.
Muchas gracias por el comentario y la aclaración.
Hola y con diferentes BD como sería?? gracias.
El inner join de mssql deberia ser asi:
SELECT *
FROM tabla1 as t1
INNER JOIN tabla2 as t2
on t1.id1=t2.id1
INNER JOIN tabla3 as t3
ON t2.id2=t3.id2
y asi todos los q quieras..
Es mas eficiente ya que de la forma que lo haces realiza una subconsulta como tabla derivada y eso lo hace mas pesado para el motor.
Me encanta mysql ya q ofrece la posibilidad de ser usado en forma gratuita, pero no confundan en las prestaciones de una y otra herramieta…
Hola, no he logrado hacer la consulta. he intentado de varias manera y no doy pié con bola.
Estas son las tablas que tengo:
Tabla1: user
Campo 1: id
Campo 2: Nick
Campo3: email
Campo4: password
Tabla2: comentarios
Campo1: Id
Campo2: id_user
Campo3: titulo
Campo4: texto_comentario
Tabla3: respuestas
Campo1: Id
Campo2: id_coment
Campo3: respuestas
Quiero unir-> user.id con comentarios.id_user y a su vez comentarios.Id con respuestas.id_coment
La consulta que he creado es:
$query_foro = sprintf(“SELECT user.*, comentarios.*, respuestas.* FROM (user INNER JOIN comentarios ON user.id=comentarios.id_user) INNER JOIN respuestas ON respuestas.id_coment=comentarios.Id “);
No puedo hacer una tabla dinamica en Dreamweaver ya que no me reconoce la consulta, sin embargo hago una vista previa en el explorer y no hay error.
Gracias por la aportacion ahora he podido realizar la consulta de 7 tablas relacionadas entre si.
Saludos.
es una explicacion precisa y concreta te ayuda y aclara tus dudas
Yo Tambien deseo hacer lo mismo que Alex
Tabla1: user
Campo 1: id
Campo 2: Nick
Campo3: email
Campo4: password
Tabla2: comentarios
Campo1: Id
Campo2: id_user
Campo3: titulo
Campo4: texto_comentario
Tabla3: respuestas
Campo1: Id
Campo2: id_coment
Campo3: respuestas
Quiero unir-> user.id con comentarios.id_user y a su vez comentarios.Id con respuestas.id_coment
La consulta que he creado es:
$query_foro = sprintf(“SELECT user.*, comentarios.*, respuestas.* FROM (user INNER JOIN comentarios ON user.id=comentarios.id_user) INNER JOIN respuestas ON respuestas.id_coment=comentarios.Id “);
No puedo hacer una tabla dinamica en Dreamweaver ya que no me reconoce la consulta, sin embargo hago una vista previa en el explorer y no hay error.
AYUDA!!! Help!!
Comentarios: