
–seosed login
–füsiline seos – on lisatud Foreign ket (constraint – piirant näiteks kontrollida diagrammi)
–loohiline seos – kui õigesti kirjutada select joiniga
--join
select * from Employees JOIN Department
ON Employees.DepartmentId=Departme

--kirjutamine lihtsamaks
select e.Name, e.Salary, d.DepartamentName
from Employees JOIN Department d
ON Employees.DepartmentId=Department.Id

--inner join
--näitab kõik departament, kus on olemas väärtus
select e.Name, e.Salary, d.DepartmentName
from Employees e INNER JOIN Department d
ON e.DepartmentId=d.Id;
--left join
select e.Name, e.Salary, d.DepartmentName
from Employees e LEFT JOIN Department d
ON e.DepartmentId=d.Id;
-- right join== right outer join
--näitab Department kus nimi on null
select e.Name, e.Salary, d.DepartmentName
from Employees e RIGHT JOIN Department d
ON e.DepartmentId=d.Id;
-- outer join
--näitab kõik väärtused
select e.Name, e.Salary, d.DepartmentName
from Employees e FULL OUTER JOIN Department d
ON e.DepartmentId=d.Id;
--cross join
--näitab nii, et 1.tabeli väärtused * 2.tabeli väärtused
select Name, Salary, DepartmentName
from Employees CROSS JOIN Department
-- näidata ainult need isikud kellel departmentName on null
select e.Name, e.Salary, d.DepartmentName
from Employees e LEFT JOIN Department d
ON e.DepartmentId=d.Id
where DepartmentName is NULL;
–teha kõik joinid
–ja kirjutada mida nad näitavad
Näitab ainult töötajad, kelle osakonnal on teadaolev manager.
SELECT e.Name, d.DepartmentName, m.ManagerName
FROM Employees e
INNER JOIN Department d ON e.DepartmentId = d.Id
INNER JOIN Manager m ON d.DepartmentHead = m.ManagerName;
Kõik töötajad, isegi kui manageri ei leita (ManagerName on NULL).
SELECT e.Name, d.DepartmentName, m.ManagerName
FROM Employees e
LEFT JOIN Department d ON e.DepartmentId = d.Id
LEFT JOIN Manager m ON d.DepartmentHead = m.ManagerName;
Kõik managerid, isegi kui nad ei juhi ühtki töötajat.
SELECT e.Name, d.DepartmentName, m.ManagerName
FROM Employees e
RIGHT JOIN Department d ON e.DepartmentId = d.Id
RIGHT JOIN Manager m ON d.DepartmentHead = m.ManagerName;
Kõik töötajad ja kõik managerid, ka need kes pole seotud.
SELECT e.Name, d.DepartmentName, m.ManagerName
FROM Employees e
FULL OUTER JOIN Department d ON e.DepartmentId = d.Id
FULL OUTER JOIN Manager m ON d.DepartmentHead = m.ManagerName;
Kõik võimalikud kombinatsioonid töötajatest ja manageridest
SELECT e.Name, m.ManagerName
FROM Employees e
CROSS JOIN Manager m;
TEST:






