JOIN
--seosed - join
--füüsiline seos - on lisatud Foreign key (constaint - piirang näiteks kontrollida diagraam)
--logiline seos -kui õigesti kirjutada select joiniga
--JOIN
SELECT * FROM Employees JOIN Department ON Employees.DepartmentId = Department.Id

INNER JOIN
--Kirjutamine lihtsamaks
--Näitab kõik department kus on olemas väärtsus
SELECT e.Name, e.Salary, d.DepartmentName FROM Employees e INNER JOIN Department d ON e.DepartmentId=d.Id

LEFT JOIN
--LEFT JOIN
--näitab kõike DepartmentName d
SELECT e.Name, e.Salary, d.DepartmentName FROM Employees e LEFT JOIN Department d ON e.DepartmentId=d.Id

RIGHT JOIN / OUTER JOIN
--RIGHT JOIN = RIGHT OUTER JOIN
-- näitab DepartmentName, kus Name on null
SELECT e.Name, e.Salary, d.DepartmentName FROM Employees e RIGHT JOIN Department d ON e.DepartmentId=d.Id

FULL / OUTER JOIN
--OUTER JOIN == FULL OUTER JOIN
--Näitab kõik värtused kahest
SELECT e.Name, e.Salary, d.DepartmentName FROM Employees e FULL OUTER JOIN Department d ON e.DepartmentId=d.Id

CROSS JOIN
--Cross JOIN - Näitab nii, et tabeli väärtused * 2 tabeli väärtused
SELECT Name, Salary, DepartmentName FROM Employees CROSS JOIN Department

Harjutused
teha kõik join’id ja kirjutada mida nad näitavad
LEFT JOIN
Töötaja nimi ja andmed tema kohta osakonnas, aga kui infot pole siis väljastatakse NULL
SELECT Employees.Name, Department.DepartmentName
FROM Employees
LEFT JOIN Department
ON Employees.DepartmentId = Department.Id

RIGHT JOIN
Lohistab väärtused kahest tabelist, kui vasteid pole, siis NULL
SELECT Employees.Name, Manager.ManagerName
FROM Employees
RIGHT JOIN Manager
ON Employees.managerId = Manager.Id;

FULL OUTER JOIN
Ühendage tabelid isegi siis, kui vasteid pole
SELECT Employees.Name, Manager.ManagerName
FROM Employees
FULL OUTER JOIN Manager
ON Employees.managerId = manager.Id;

CROSS JOIN
Korrutab ühe tabeli kirjed teise tabeli kirjetega
SELECT Employees.Name, Manager.ManagerName
FROM Employees
CROSS JOIN Manager;

TESTID
N1

N2

N3

N4

N5


