Tecnología

Inicio

MySQL combinación externa Tutorial

Las combinaciones externas se combinan dos o más tablas de una manera que algunas columnas pueden tener valores NULL. MySQL separa combinaciones externas en IZQUIERDA o DERECHA SE UNE según la tabla proporciona los datos que no coinciden. En un LEFT JOIN, se devuelven los registros no coincidentes de la tabla en el lado izquierdo de la cláusula JOIN. En un RIGHT JOIN, se devuelven los registros no coincidentes de la tabla en el lado derecho de la cláusula JOIN.

Left & Right SE UNE

MySQL lee las tablas en el orden determinado por la cláusula JOIN. En la izquierda se une, la tabla de la izquierda se lee antes de la tabla de la derecha. En la derecha se une, la tabla de la derecha se lee antes de la izquierda. Todos los datos se devuelven de la mesa que se lee primero, y luego los datos de la segunda tabla se empareja. Cualquier registros no coincidentes se devuelven con los valores NULL.
Los ejemplos utilizarán las siguientes dos tablas:

dirección
fnombre lname staddress postal
Kris Masters 635 en cualquier lugar Ave 17598
Steve Milano 503 17989 St. a otra parte
James teeney 379 Kensington Ct 98539
Pam Buffy 501 W 69th St 80907

código postal
código postal
Lancaster PA 17989
Wiconisco PA 17598
Orange CA 80907
New York NY 50648

La sintaxis de un LEFT JOIN es:

fnombre SELECT, lname, staddress, ciudad, estado, zip.zipcode dirección FROM LEFT JOIN código postal USAR (postal);

Esta consulta devuelve los siguientes resultados:

Kris | Masters | 635 En cualquier lugar Ave | Wiconisco | PA | 17598 |
| Steve | Milano | 503 St. a otra parte | Lancaster | PA | 17989 |
| pam | Buffy | 501 W 69th St | naranja | CA | 80907
| James | teeney | 379 Kensington Ct | NULL | NULL | NULL |

Como se puede ver, todos los registros de la tabla de la izquierda (dirección) se devuelven, con valores NULL para los registros faltantes de la tabla derecha (código postal).

La sintaxis para un RIGHT JOIN es:

fnombre SELECT, lname, staddress, ciudad, estado, zip.zip dirección FROM RIGHT JOIN código postal USAR (zip)
IR

¿Cuál sería devolver todos los valores de la tabla de la derecha (código postal) con valores nulos para los datos que faltan de la tabla de direcciones.
Kris | Masters | 635 En cualquier lugar Ave | Wiconisco | PA | 17598 |
| Steve | Milano | 503 St. a otra parte | Lancaster | PA | 17989 |
| pam | Buffy | 501 W 69th St | naranja | CA | 80907
| NULL | NULL | NULL | Nueva York | Nueva York | 50648 |

Puede proporcionar la palabra "desconocido" para ODBC (Open Database Connectivity) para aplicaciones de terceros, pero esto es opcional desde el punto de vista de MySQL. La sintaxis sería entonces:

fnombre SELECT, lname, staddress, ciudad, estado, zip.zipcode dirección FROM LEFT OUTER JOIN código postal USAR (postal);