1. `Inner Join` (más común):
Devuelve filas solo cuando hay una coincidencia en ambas tablas en función de la condición de unión. Si no hay coincidencia en ninguna de las tablas, la fila se excluye del resultado.
`` `SQL
Seleccionar column_names
De la tabla1
Tabla de unión interna2 en la tabla1.column_name =table2.column_name;
`` `` ``
* `Table1` y` Table2`:las tablas que desea unirse.
* `column_name`:las columnas utilizadas para hacer coincidir las filas entre las tablas. Estas columnas deben tener tipos de datos compatibles.
Ejemplo:
Digamos que tienes dos tablas:
* `CLIENTES`: `CustomerId`,` Name`, `City`
* `Orders`: `OrderId`,` CustomerId`, `OrderDate`,` TotalMount`
Para obtener el nombre del cliente y los detalles del pedido para todos los pedidos:
`` `SQL
Seleccione CLIENDS.NAME, Orders.OrderId, Orders.OrderDate, Orders.Totalamount
De los clientes
Órdenes de unión interna en clientes.customerid =Orders.customerid;
`` `` ``
Esto solo devolverá a los clientes que han realizado pedidos y pedidos que pertenecen a los clientes existentes.
2. `Left Join` (o` Left Outer Join '):
Devuelve todas las filas de la tabla izquierda (`Tabla1`), incluso si no hay coincidencia en la tabla derecha ('Tabla 2`). Si no hay coincidencia en la tabla correcta, las columnas de la tabla derecha tendrán valores 'nulo'.
`` `SQL
Seleccionar column_names
De la tabla1
Tabla de unión izquierda2 en la tabla1.column_name =table2.column_name;
`` `` ``
Ejemplo: Para obtener todos los clientes y sus pedidos (incluidos los clientes sin pedidos):
`` `SQL
Seleccione CLIENDS.NAME, Orders.OrderId, Orders.OrderDate, Orders.Totalamount
De los clientes
Izquierda unir pedidos en clientes.customerid =Orders.customerid;
`` `` ``
3. `Right Join` (o` Right Outer Join '):
Devuelve todas las filas de la tabla derecha (`Tabla2`), incluso si no hay coincidencia en la tabla izquierda ('Tabla1`). Si no hay coincidencia en la tabla izquierda, las columnas de la tabla izquierda tendrán valores 'nulo'.
`` `SQL
Seleccionar column_names
De la tabla1
Tabla de unión derecha2 en la tabla1.column_name =table2.column_name;
`` `` ``
Ejemplo: (Menos común, pero útil en escenarios específicos) Esto es funcionalmente equivalente a una 'unión izquierda' con las tablas intercambiadas.
4. `Full Outer Join`:
Devuelve todas las filas de ambas tablas. Si hay una coincidencia, se devuelve la fila correspondiente. Si no hay coincidencia en una tabla, las columnas de la otra tabla tendrán valores 'nulo'. mysql no admite directamente `full exterior Única ' . Tienes que simularlo usando `Union` de` Left Join 'y `Right Join'.
`` `SQL
Seleccionar column_names
De la tabla1
Tabla de unión izquierda2 en la tabla1.column_name =table2.column_name
UNIÓN
Seleccionar column_names
De la tabla1
Tabla de unión derecha2 en la tabla1.column_name =table2.column_name;
`` `` ``
Elegir la unión correcta:
La elección del tipo de unión depende de los datos que necesite. `Inner Join 'es la opción más frecuente, pero' Left Join 'y' Right Join 'son cruciales cuando necesitas preservar todas las filas de una de las tablas. Simule `Full Outer Join` cuando necesite todas las filas de ambas tablas. Recuerde usar alias (`Tabla1`,` Tabla2`) para mayor claridad y evitar la ambigüedad cuando los nombres de las columnas son los mismos en ambas tablas.