19-Joins (Unioes) en SQL

La clausula Join se utiliza para combinar filas de dos o mas tablas en funcion de una columna que se relaciona entre ellas

Cada tabla tiene un ID que es unico

ese ID es eñ campo que se debe relacionar en otras tablas

El INNER JOIN es la clausula que relaciona campos coincidentes en tablas distintas

Ejemplo

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
    



Diferentes tipos de JOIN

Clausula Descricion
(INNER) JOIN: Devuelve registros que tienen valores coincidentes en ambas tablas
LEFT (OUTER) JOIN Devuelve todos los registros de la tabla de la izquierda y los registros coincidentes de la tabla de la derecha.
RIGHT (OUTER) JOIN: Devuelve todos los registros de la tabla de la derecha y los registros de la tabla de la izquierda
FULL (OUTER) JOIN: Devuelve todos los registros cuando hay una coincidencia en cualquiera de los dos. o mesa derecha



...

LEFT JOIN

LEFT JOIN devuelve todos los registros de la tabla de la esquierda, y los registros coincidientes de la tabla de la derecha

Ejemplo de codigo

En algunas bases de datos LEFT JOIN se llama LEFT OUTER JOIN.

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
    



Ejemplo de codigo

La seguiente instrucion SQL seleciona todos los clientes y cualquier pedido que tenga

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
    



RIGHT JOIN

Esta clausula RIGHT JOIN devuelve todos los registros de la tabla derecha y los registros coincidentes de la tabla de la esquierda

Ejemplo de codigo

En algunas bases de datos RIGHT JOINse llama RIGHT OUTER JOIN.

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
    



ejemplo

La siguiente instrucción SQL devolverá todos los empleados y cualquier pedido que podría haber colocado:

SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID; 
    



FULL OUTER JOIN

los FULL OUTER JOINpalabra clave devuelve todos los registros cuando hay una coincidencia en registros de tabla izquierdo (table1) o derecho (table2).

Sintaxis FULL OUTER JOIN

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
    



FULL OUTER JOIN El uso de esta clausula puede devolver resultados muy grandes

Ejemplos de FULL OUTER JOIN

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
    



Self Join

Una unión automática es una unión normal, pero la tabla se une consigo misma

sintaxis

SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;
    



Ejemplo

La siguiente instrucción SQL coincide con los clientes que son de la misma ciudad:

SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City
FROM Customers A, Customers B
WHERE A.CustomerID < > B.CustomerID
AND A.City = B.City
ORDER BY A.City;
    




Publicar un comentario

0 Comentarios