http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html и http://www.khankennels.com/blog/index.php/archives/2007/04/20/getting-joins/
очень помогли в изучении основ соединений с использованием диаграмм Венна. Но мне интересно, как бы вы применили то же самое мышление к запросу, который имеет более одного соединения.
Допустим, у меня есть 3 таблицы:
Сотрудники
EmployeeID
FullName
EmployeeTypeID
Типы сотрудников (полный рабочий день, неполный рабочий день и т. д.)
EmployeeTypeID
TypeName
Страховые отчеты
InsuranceRecordID
EmployeeID
HealthInsuranceNumber
Теперь я хочу, чтобы мой окончательный набор результатов включал данные из всех трех таблиц в следующем формате:
EmployeeID | FullName | TypeName | HealthInsuranceNumber
Используя то, что я узнал из этих двух сайтов, я могу использовать следующие объединения для получения всех сотрудников, независимо от того, существует ли их страховая информация или нет:
SELECT
Employees.EmployeeID, FullName, TypeName, HealthInsuranceNumber
FROM Employees
INNER JOIN EmployeeTypes ON Employees.EmployeeTypeID = EmployeeTypes.EmployeeTypeID
LEFT OUTER JOIN InsuranceRecords ON Employees.EmployeeID = InsuranceRecords.EmployeeID
Мой вопрос заключается в том, что, используя тот же шаблон диаграммы Венна, как будет визуально представлен приведенный выше запрос? Эта картина точна?