INNER JOIN MySQL Ejemplos Completos
INNER JOIN MySQL Ejemplos Completos. Nos permite extraer las intersecciones en registros de distintas tablas de la forma más eficiente. Si deseamos obtener resultados idénticos de dos tablas o tres según sea el caso.
Lo podemos hacer con INNER JOIN la una unión interna de tabla1 y tabla2, da el resultado de tabla1 intersección tabla2, es decir, la parte interna de una intersección del diagrama de Venn.
Para conocer este tipo de consultas vamos a mostrar la sintaxis con ejemplos.
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
INNER JOIN MySQL Ejemplos Completos
La base de datos para este ejercicio
Para que funcione correctamente necesitamos el lenguaje PHP y una base de datos para realizar las consultas necesarias.
CREATE TABLE IF NOT EXISTS `tabla1` ( `id` int(11) NOT NULL, `letra` varchar(40) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT; -- Volcado de datos para la tabla `tabla1` INSERT INTO `tabla1` (`id`, `letra`) VALUES (1, 'Uno'), (2, 'Dos'), (3, 'Tres'), (4, 'Cuatro'); -- CREATE TABLE IF NOT EXISTS `tabla2` ( `id` int(11) NOT NULL, `valores` varchar(50) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- Volcado de datos para la tabla `tabla2` INSERT INTO `tabla2` (`id`, `valores`) VALUES (3, 'Tres'), (4, 'Cuatro'), (5, 'Cinco'), (6, 'Seis');
Ahora realizaremos consultas para extraer datos de MySQL de una manera eficiente, utilizando los INNER JOINS, sin embargo, usaremos PHP como lenguaje de programacion para tal fin.
Tenemos que tener en cuenta lo siguiente, (1,2) son únicos a Tabla1, (3,4) son comunes, y (5,6) son únicos a Tabla2.
a) Ejemplos #01: INNER JOIN
Es una unión interna que utiliza cualquiera de las consultas equivalentes dando la intersección central de las dos o tres tablas, es decir, las dos filas que tienen en común entre si, veamos un ejemplo. Si observamos podemos utilizar cualquiera de las dos consultas y el resultado sera el mismo.
select * from tabla1 a INNER JOIN tabla2 b on a.id = b.id; select tabla1.*,tabla2.* from tabla1,tabla2 where tabla1.id = tabla2.id;
Resultado de la consulta en base de datos.
b) Ejemplos #02: LEFT OUTER JOIN
LEFT OUTER JOIN muestra todas las filas de la tabla izquierda (tabla 1) y los registros coincidentes de la tabla derecha (tabla 2). El resultado es NULL en el lado derecho, si no hay coincidencia alguna. Veamos un ejemplo.
select * from tabla1 a LEFT OUTER JOIN tabla2 b on a.id = b.id;
c) Ejemplos #03:RIGHT OUTER JOIN
RIGHT JOIN muestra todos los registros de la tabla derecha (tabla 2) y los registros coincidentes de la tabla izquierda (tabla1). El resultado es NULL en el lado izquierdo de la tabla, cuando no hay coincidencia. Veamos un ejemplo.
select * from a RIGHT OUTER JOIN b on a.a = b.b;
d) Ejemplos #04: FULL OUTER JOIN
FULL OUTER JOIN muestra todos los registros cuando hay una coincidencia en registros de tabla izquierda (tabla1) o derecha (tabla2). Veamos un ejemplo.
[pt_view id=»fc09d98ps2″]CONCLUSIÓN
En el mundo de las bases de datos y las consultas siempre llegaremos a tener que relacionar dos o más tablas para mostrar en el navegador una información precisa.
En este artículo mostramos los principales sentencias y consultas para relacionar tablas desde diferentes puntos de vista.
Bueno espero que esta simple explicacion les sirva, un saludo a la distancia.
Referencia
Hola, muchas gracias por compartir esta información tan completa, la pude realizar muy bien en mi gestor de base de datos.
no encuentro el error en este codigo
SELECT p.codproveedor, p.descripcion, p.precio, p.existencia, pr.proveedor, p.foto
FROM producto p INNER JOIN proveedor pr
ON p.proveedor = prcodproveedor
WHERE p.estatus =1
ORDER BY p.codproducto
Hola Armando
falta un punto, tendria que ser asi
SELECT p.codproveedor, p.descripcion, p.precio, p.existencia, pr.proveedor, p.foto
FROM producto p INNER JOIN proveedor pr
ON p.proveedor = pr.codproveedor
WHERE p.estatus =1
ORDER BY p.codproducto
Saludos
Felicitaciones por la excelente explicación, mas claro imposible. gracias por compartir me ayuda mucho.
Gracias!!
Gracias muy buena info y bien explicado!
Hola, gracias por compartir
Me puedes ayudar con este código que no encuentro el error
Gracias
select ingreso.idingreso,ingreso.tipo_comprobante,ingreso.num_comprobante,detalle_ingreso.idarticulo,detalle_ingreso.cantidad,detalle_ingreso.precio_compra
from ingreso
where ingreso.idingreso=2
INNER JOIN detalle_ingreso on ingreso.idingreso=detalle_ingreso.idingreso
error
#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘INNER JOIN detalle_ingreso on ingreso.idingreso=detalle_ingreso.idingreso LIMIT ‘ at line 4
Gracias por el conocimiento que compartes, saludos.
Gracias a ti, por comentar.
Saludos!
Gracias, muy útil.
Falta un CREATE en la linea 1.
Hola javier,
Gracias por la correción y ya lo hemos corregido gracias a ti
Un saludo.