MYSQL La base de datos

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');
dos tablas mysql
dos tablas mysql

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.

Inner Join MySQL PHP
Inner Join MySQL PHP

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;
Left Outer Join MySQL
Left Outer Join MySQL

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;
RIGHT OUTER JOIN
RIGHT OUTER JOIN

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.

FULL OUTER JOIN MySQL
FULL OUTER JOIN MySQL
INNER JOIN MySQL Ejemplos Completos
INNER JOIN MySQL Ejemplos Completos
[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

Inner Join

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

11 comentarios

  1. 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

    1. 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

  2. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba