tipos que outer natural left ejemplos sql

que - tipos de join mysql



¿Qué es SELF JOIN y cuándo lo usarías? (5)

Posible duplicado:
sql: autocombinaciones explicadas

¿Qué es auto unión y cuándo lo usarías? No entiendo que yo me una, entonces una explicación para un profano con un ejemplo sería genial.


Bueno, un ejemplo clásico es donde quería obtener una lista de empleados y sus gerentes inmediatos:

select e.employee as employee, b.employee as boss from emptable e, emptable b where e.manager_id = b.empolyee_id order by 1

Básicamente se usa cuando existe una relación entre filas almacenadas en la misma tabla.

  • empleados.
  • comercialización de niveles múltiples.
  • partes de máquina.

Y así...


SQL self-join es simplemente una combinación normal que se utiliza para unir una tabla a sí mismo.

Ejemplo:

Select * FROM Table t1, Table t2 WHERE t1.Id = t2.ID


Una auto unión es simplemente cuando te unes a una mesa consigo mismo. No hay palabra clave SELF JOIN , solo escribe una unión ordinaria donde ambas tablas involucradas en la unión son la misma tabla. Una cosa a tener en cuenta es que cuando se autoensambla es necesario usar un alias para la tabla; de lo contrario, el nombre de la tabla sería ambiguo.

Es útil cuando quiere correlacionar pares de filas de la misma tabla, por ejemplo, una relación padre-hijo. La siguiente consulta devuelve los nombres de todas las subcategorías inmediatas de la categoría ''Cocina''.

SELECT T2.name FROM category T1 JOIN category T2 ON T2.parent = T1.id WHERE T1.name = ''Kitchen''


Utiliza una autocombinación cuando una tabla hace referencia a datos en sí misma.

Por ejemplo, una tabla Employee puede tener una columna SupervisorID que apunta al empleado que es el jefe del empleado actual.

Para consultar los datos y obtener información para ambas personas en una fila, puede unirse a sí mismo de esta manera:

select e1.EmployeeID, e1.FirstName, e1.LastName, e1.SupervisorID, e2.FirstName as SupervisorFirstName, e2.LastName as SupervisorLastName from Employee e1 left outer join Employee e2 on e1.SupervisorID = e2.EmployeeID


Utilizaría una autocombinación en una tabla que se "refiera" a sí misma; por ejemplo, una tabla de empleados donde managerid es una clave externa para employeeid en la misma tabla.

Ejemplo:

SELECT E.name, ME.name AS manager FROM dbo.Employees E LEFT JOIN dbo.Employees ME ON ME.employeeid = E.managerid