mysql: conectar

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

mysql: conectar

Este tutorial de MySQL explica cómo usar MySQL participar (interno y externo) con gramática, ilustraciones visuales y ejemplos.

describir

mysql participar Se utiliza para recuperar datos de varias tablas. Se realiza un JOIN de MySQL cada vez que se unen dos o más tablas en una instrucción SQL.

Hay diferentes tipos de conexiones MySQL:

  • MySQL INNER JOIN (o a veces llamado unión simple)
  • Combinación externa izquierda de MySQL (o, a veces, llamada combinación izquierda)
  • MySQL RIGHT OUTER JOIN (o algunas veces llamado RIGHT JOIN)

Así que analicemos la sintaxis de MySQL JOIN, veamos una ilustración visual de MySQL JOIN y exploremos los ejemplos de MySQL JOIN.

UNIÓN INTERNA (unión simple)

Lo más probable es que haya escrito una declaración que use MySQL INNER JOIN. Es el tipo de conexión más común. MySQL INNER JOINS devuelve todas las filas de varias tablas que cumplen la condición de unión.

sintaxis

La sintaxis de INNER JOIN en MySQL es:

SELECT columns
FROM table1 
INNER JOIN table2
ON table1.column = table2.column;

ilustración visual

En este gráfico visual, MySQL INNER JOIN devuelve el área sombreada:

MySQL INNER JOIN devolverá los registros donde se cruzan table1 y table2.

ejemplo

Aquí hay un ejemplo de MySQL INNER JOIN:

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers 
INNER JOIN orders
ON suppliers.supplier_id = orders.supplier_id;

Este ejemplo de MySQL INNER JOIN devolverá todas las filas de las tablas Proveedores y Pedidos en las que haya un valor de ID de proveedor coincidente en las tablas Proveedores y Pedidos.

Veamos algunos datos para explicar cómo funciona INNER JOINS:

Tenemos una tabla llamada Proveedores con dos campos (ID del proveedor y Nombre del proveedor). Contiene los siguientes datos:

Identificación del proveedor Nombre del proveedor
10000 IBM
10001 HP
10002 microsoft
10003 nvidia

Tenemos otra tabla llamada orders con tres campos (order_id, supplier_id y order_date). Contiene los siguientes datos:

Solicitar ID Identificación del proveedor fecha de orden
500125 10000 2013/05/12
500126 10001 2013/05/13
500127 10004 2013/05/14

Si ejecutamos la declaración SELECT de MySQL a continuación (incluyendo INNER JOIN):

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers
INNER JOIN orders
ON suppliers.supplier_id = orders.supplier_id;

Nuestro conjunto de resultados se ve así:

Identificación del proveedor nombre fecha de orden
10000 IBM 2013/05/12
10001 HP 2013/05/13

Las filas de Microsoft y NVIDIA en la tabla de proveedores se omitirán porque los ID de proveedor 10002 y 10003 no existen en ninguna de las tablas. La fila 500127 (order_id) en la tabla de pedidos se omitirá porque el ID de proveedor 10004 no existe en la tabla de proveedores.

sintaxis antigua

Como nota final, vale la pena mencionar que el ejemplo anterior de MySQL INNER JOIN se puede reescribir usando la sintaxis implícita más antigua de la siguiente manera (pero aún recomendamos usar la sintaxis de palabra clave INNER JOIN):

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers, orders
WHERE suppliers.supplier_id = orders.supplier_id;

izquierda combinación externa

Otro tipo de unión se llama MySQL LEFT OUTER JOIN.Este tipo de unión devuelve todas las filas en el reloj izquierdo especificado en la condición ON, y si solo Une esas filas de otras tablas donde los campos son iguales (se cumplen las condiciones de unión).

sintaxis

La sintaxis para LEFT OUTER JOIN en MySQL es:

SELECT columns
FROM table1
LEFT [OUTER] JOIN table2
ON table1.column = table2.column;

En algunas bases de datos, la palabra clave LEFT OUTER JOIN se reemplaza por LEFT JOIN.

ilustración visual

En esta visualización, MySQL LEFT OUTER JOIN devuelve el área sombreada:

MySQL LEFT OUTER JOIN devolverá todos los registros en la tabla 1 y solo aquellos registros en la tabla 2 que se cruzan con la tabla 1.

ejemplo

Aquí hay un ejemplo de MySQL LEFT OUTER JOIN:

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers
LEFT JOIN orders
ON suppliers.supplier_id = orders.supplier_id;

Este ejemplo de LEFT OUTER JOIN devolverá todas las filas de la tabla Proveedores y solo aquellas filas de la tabla Pedidos donde los campos de combinación son iguales.

Si el valor de id_proveedor en la tabla de proveedores no existe en la tabla de pedidos, todos los campos de la tabla de pedidos aparecerán en el conjunto de resultados como .

Veamos algunos datos para explicar cómo funciona LEFT OUTER JOINS:

Tenemos una tabla llamada Proveedores con dos campos (ID del proveedor y Nombre del proveedor). Contiene los siguientes datos:

Identificación del proveedor Nombre del proveedor
10000 IBM
10001 HP
10002 microsoft
10003 nvidia

Tenemos una segunda tabla llamada pedidos con tres campos (id_pedido, id_proveedor y fecha_pedido). Contiene los siguientes datos:

Solicitar ID Identificación del proveedor fecha de orden
500125 10000 2013/05/12
500126 10001 2013/05/13

Si ejecutamos la siguiente sentencia SELECT (incluyendo LEFT OUTER JOIN):

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers
LEFT JOIN orders
ON suppliers.supplier_id = orders.supplier_id;

Nuestro conjunto de resultados se ve así:

Identificación del proveedor Nombre del proveedor fecha de orden
10000 IBM 2013/05/12
10001 HP 2013/05/13
10002 microsoft
10003 nvidia

Dado que se usa LEFT OUTER JOIN, se incluirán las líneas para Microsoft y NVIDIA.Sin embargo, notará que el campo order_date de estos registros contiene un valor.

unión externa derecha

Otro tipo de unión se llama MySQL RIGHT OUTER JOIN.Este tipo de combinación devuelve todas las filas de la tabla DERECHA especificadas en la condición ON y si solo Une esas filas de otras tablas donde los campos son iguales (se cumplen las condiciones de unión).

sintaxis

La sintaxis de RIGHT OUTER JOIN en MySQL es:

SELECT columns
FROM table1
RIGHT [OUTER] JOIN table2
ON table1.column = table2.column;

En algunas bases de datos, la palabra clave RIGHT OUTER JOIN se reemplaza por RIGHT JOIN.

ilustración visual

En esta visualización, MySQL RIGHT OUTER JOIN devuelve el área sombreada:

MySQL RIGHT OUTER JOIN devolverá todos los registros en table2 y solo aquellos registros en table1 que se cruzan con table2.

ejemplo

El siguiente es un ejemplo de MySQL RIGHT OUTER JOIN:

SELECT orders.order_id, orders.order_date, suppliers.supplier_name
FROM suppliers
RIGHT JOIN orders
ON suppliers.supplier_id = orders.supplier_id;

Este ejemplo de RIGHT OUTER JOIN devolverá todas las filas de la tabla de pedidos y solo aquellas filas de la tabla de proveedores donde los campos de unión sean iguales.

Si el valor de id_proveedor en la tabla de pedidos no existe en la tabla de proveedores, todos los campos de la tabla de proveedores aparecerán en el conjunto de resultados como .

Veamos algunos datos para explicar cómo funciona RIGHT OUTER JOINS:

Tenemos una tabla llamada Proveedores con dos campos (ID del proveedor y Nombre del proveedor). Contiene los siguientes datos:

Identificación del proveedor Nombre del proveedor
10000 manzana
10001 Google

Tenemos una segunda tabla llamada pedidos con tres campos (id_pedido, id_proveedor y fecha_pedido). Contiene los siguientes datos:

Solicitar ID Identificación del proveedor fecha de orden
500125 10000 2013/08/12
500126 10001 2013/08/13
500127 10002 2013/08/14

Si ejecutamos la siguiente sentencia SELECT (con RIGHT OUTER JOIN):

SELECT orders.order_id, orders.order_date, suppliers.supplier_name
FROM suppliers
RIGHT JOIN orders
ON suppliers.supplier_id = orders.supplier_id;

Nuestro conjunto de resultados se ve así:

Solicitar ID fecha de orden Nombre del proveedor
500125 2013/08/12 manzana
500126 2013/08/13 Google
500127 2013/08/14

Debido a que se utilizó RIGHT OUTER JOIN, se incluirá la fila para 500127 (order_id).Sin embargo, notará que el campo Nombre del proveedor del registro contiene valor.

(Visited 15 times, 1 visits today)