Результаты внутреннего объединения
Таблица 10.7. Результаты внутреннего объединения
Е.EmpID | E.Name | P.EmpID | ProjectName | S.EmpID | S.Skill |
1 | Ferguson | 1 | X-63 Structure | 1 | Mechanical Design |
1 | Ferguson | 1 | X-63 Structure | 1 | Aerodynamic Loading |
1 | Ferguson | 1 | X-64 Structure | 1 | Mechanical Design |
1 | Ferguson | 1 | X-64 Structure | 1 | Aerodynamic Loading |
2 | Frost | 2 | X-63 Guidance | 2 | Analog Design |
2 | Frost | 2 | X-63 Guidance | 2 | Gyroscope Design |
2 | Frost | 2 | X-64 Guidance | 2 | Analog Design |
2 | Frost | 2 | X-64 Guidance | 2 | Gyroscope Design |
3 | Toyon | 3 | X-63 Telemetry | 3 | Digital Design |
3 | Toyon | 3 | X-63 Telemetry | 3 | R/F Design |
3 | Toyon | 3 | X-64 Telemetry | 3 | Digital Design |
3 | Toyon | 3 | X-64 Telemetry | 3 | R/F Design |
Такое расположение данных не отличается слишком большой ясностью. В каждой строке идентификатор сотрудника появляется три раза, а для каждого сотрудника его проекты и виды квалификации указываются несколько раз. Для ответа на возникшие у вас вопросы внутреннее произведение подходит недостаточно хорошо. Более подходящий результат можно получить, используя объединение-слияние с несколькими операторами SELECT. Начнем с простого объединения-слияния:
SELECT *
FROM EMPLOYEE E
UNION JOIN PROJECTS P UNION JOIN SKILLS S ;
Обратите внимание, что в объединении-слиянии нет предложения ON. Дело в том, что сейчас данные не фильтруются, поэтому предложение ON не нужно. Результат, полученный при выполнении этого оператора, приведен в табл. 10.8.