“Conocimiento software>SQL Server

¿Cómo te unes a dos tablas en MySQL?

2011/11/26
Te unes a dos tablas en MySQL usando la cláusula `Join` en una declaración` select`. Hay varios tipos de uniones, cada una con un comportamiento ligeramente diferente:

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.

SQL Server
Cómo instalar SQL Express para Windows Server 2008
Cómo cambiar una instancia existente de Microsoft SQL Server 2005 a una edición diferente de SQL Server
Cómo copiar una base de datos del SQL 2000 Server a SQL 2008
Cómo utilizar Microsoft SQL Server Management Studio
¿Qué es una subconsulta en MS Access?
Cómo crear tablas en Microsoft SQL Server
¿Cuál es la diferencia entre una base de datos y un servidor?
Cómo usar MS Access con SQL Server Express
Conocimiento de la computadora © http://www.ordenador.online