SQL se une se utilizan para relacionar la información en tablas diferentes. Una condición de combinación es una parte de la consulta SQL que recupera filas de dos o más tablas. Una condición SQL JOIN se utiliza en la cláusula WHERE de SQL de selección, actualización, eliminación declaraciones.
La sintaxis para unir dos tablas es la siguiente:
SELECT col1, col2, ... col3
DE table_name1, table_name2
DONDE table_name1.col2 = table_name2.col1;
Si una condición SQL combinación se omite o si no es válida la operación de unión se traducirá en un producto cartesiano. El producto cartesiano devuelve un número de filas igual al producto de todas las filas de todas las tablas que se acompañan. Por ejemplo, si la primera tabla tiene 20 filas y la segunda tabla tiene 10 filas, el resultado será de 20 filas * 10, o 200. Esta consulta tarda mucho tiempo en ejecutarse.
Vamos a usar las siguientes dos tablas para explicar el sql condiciones de combinación.
base de datos de la tabla "producto";
| product_id | product_name | supplier_name | unit_price |
|---|---|---|---|
| 100 | Cámara | Nikon | 300 |
| 101 | Televisión | Onida | 100 |
| 102 | Refrigerador | Vediocon | 150 |
| 103 | Ipod | Manzana | 75 |
| 104 | Móvil | Nokia | 50 |
tabla de base de datos "order_items";
| order_id | product_id | total_units | cliente |
|---|---|---|---|
| 5100 | 104 | 30 | Infosys |
| 5101 | 102 | 5 | Satyam |
| 5102 | 103 | 25 | Wipro |
| 5103 | 101 | 10 | TCS |
SQL se une se pueden clasificar en Equi unión y no Equi unirse.
1) se une a SQL Equi
Se trata de una simple condición de combinación de SQL que utiliza el signo igual como el operador de comparación. Hay dos tipos de uniones son equi unión SQL exterior y SQL Combinación interna.
Por ejemplo: Usted puede obtener la información sobre un cliente que compró un producto y la cantidad de producto.
2) de SQL no se une a equi
Se trata de una condición de combinación de SQL que hace uso de algún operador de comparación que no sea el signo igual como>, <,> =, <=
1) join a SQL Equi:
Una combinación de igualdad se clasifica en dos categorías:
a) Inner Join SQL
b) externa SQL Join
a) Inner Join SQL
b) externa SQL Join
a) SQL interna:
Todas las filas devueltas por la consulta sql sql satisfacer la condición de combinación especificada.
Por ejemplo: Si desea mostrar la información del producto para cada orden de la consulta será como se indica a continuación.Dado que está recuperando los datos de dos tablas, es necesario para identificar la columna común entre estas dos tablas, que se theproduct_id.
La consulta de este tipo de uniones SQL sería como,
SELECT order_id, product_name, unit_price, supplier_name, total_units
DE producto, order_items
DONDE order_items.product_id = product.product_id;
Las columnas deben ser referidos por el nombre de tabla en la condición de unión, porque Product es una columna de ambas tablas y necesita una manera de ser identificados. Esto evita la ambigüedad en el uso de las columnas en la instrucción SELECT de SQL.
El número de condiciones de combinación es (n-1), si hay más de dos tablas unidas en una consulta donde "n" es el número de tablas implicadas. La regla debe ser cierto para evitar producto cartesiano.
También puede utilizar alias para hacer referencia al nombre de la columna, a continuación, la consulta anterior sería como,
SELECT o.order_id, p.product_name, p.unit_price, p.supplier_name, o.total_units
DE producto p, o order_items
DONDE o.product_id = p.product_id; b) SQL combinación externa:
Esta condición SQL JOIN devuelve todas las filas de ambas tablas que satisfagan la condición de combinación, junto con las filas que no cumplen la condición de unión de una de las mesas. El operador de combinación externa SQL en Oracle es (+) y se utiliza en un lado de la condición de unión solamente.
La sintaxis es diferente para diferentes RDBMS aplicación. Pocos de ellos representan las condiciones de unión como "SQL externa izquierda", "externa derecha sql join".
Si desea visualizar todos los datos del producto, junto con artículos de pedido de datos, con valores nulos que se muestran para los elementos de orden, si un producto no tiene ninguna posición de pedido, la consulta SQL de combinación externa, como se muestra a continuación:
SELECT p.product_id, p.product_name, o.order_id, o.total_units
DE order_items o, producto p
DONDE o.product_id (+) = p.product_id;
La salida sería,
| product_id | product_name | order_id | total_units |
|---|---|---|---|
| ------------- | ------------- | ------------- | ------------- |
| 100 | Cámara | ||
| 101 | Televisión | 5103 | 10 |
| 102 | Refrigerador | 5101 | 5 |
| 103 | Ipod | 5102 | 25 |
| 104 | Móvil | 5100 | 30 |
NOTA: Si el operador (+) se utiliza en el lado izquierdo de la condición de unión que es equivalente a externa izquierda. Si se usa en el lado derecho de la condición de unión que es equivalente a combinación externa derecha.
SQL autocombinación:
Un Únete a uno mismo es un tipo de unión SQL que se utiliza para unirse a una mesa a sí mismo, sobre todo cuando la tabla tiene una clave externa que hace referencia a su propia clave principal.Es necesario asegurarse de que la instrucción de combinación define un alias para ambas copias de la tabla para evitar la ambigüedad de la columna.
La consulta siguiente es un ejemplo de un auto unirse,
SELECT a.sales_person_id, a.name, a.manager_id, b.sales_person_id, b.name
DE Sales_Person uno, Sales_Person b
DONDE a.manager_id = b.sales_person_id; 2) SQL no Equi Ingreso:
A no Únete a Equi es una combinación de SQL cuya condición se establece utilizando todos los operadores de comparación, excepto el igual (=) operador. Al igual que> =, <=, <,>
Por ejemplo: Si usted quiere encontrar los nombres de los estudiantes que no están estudiando, ya sea la economía, la consulta SQL sería como, (permite el uso student_details tabla definida con anterioridad.)
SELECT nombre apellido, apellido, sin perjuicio de
student_details DE
DONDE tema! = 'Economía de los
La salida sería algo así como:
| first_name | apellidos | tema |
|---|---|---|
| ------------- | ------------- | ------------- |
| Anajali | Bhagwat | Matemáticas |
| Shekar | Gowda | Matemáticas |
| Rahul | Sharma | Ciencia |
| Stephen | Flamenco | Ciencia |






0 comentarios:
Publicar un comentario