У меня возникает вопрос в SQL-соединениях. У меня есть сотрудник таблицы с employeeid как первичный ключ и некоторые другие столбцы для сотрудника. И есть другая таблица, называемая employeeaddress, где может быть несколько employeeid - это внешний ключ. У одного сотрудника может быть много сотрудников, только для того, чтобы объяснить отношения друг к другу.SQL Присоединиться к левому соединению или к левому внешнему соединению
Если я хочу написать запрос, который будет получать следующие столбцы
employee.employeeid, employee.empname,
employeeaddress.employeeaddressid, employeeaddress.addr1,
employeeaddress.addr2
Так что может быть сотрудником, не EmployeeAddress. Но в любом случае я хотел получить всех сотрудников, у которых могут быть ноль или несколько адресов.
Нужно ли применять left join
или left outer join
? Я хочу следующий результат для таблицы, которая имеет 2 сотрудников John
и Michael
, где John
имеет два employeeaddresses
с employeeaddressid 21
и 22
и Michael
не имеет employeeaddress
1, John, 21, addr1 for John, addr2 for John
1, John, 22, another addr1 for John, another addr2 for John
2, Michael, NULL , NULL , NULL
Полученный результат устроен следующим образом
employee.employeeid, employee.empname, employeeaddress.employeeaddressid, employeeaddress.addr1, employeeaddress.addr2
Пожалуйста, помогите.
LEFT JOIN такое же, как LEFT OUTER JOIN. Как выглядит ваш текущий запрос? – jarlh
Я использовал объединение LEFT только для моего запроса, но поскольку я извлекаю несколько столбцов, я все еще проверяю, повторяется ли первичный ключ в первой таблице для нескольких записей во второй таблице. Поэтому я объяснил свой запрос с помощью простого сценария – SARAVAN
LEFT OUTER JOIN, но ... address1 и address2 - это два разных столбца одной и той же строки в таблице emplyeeaddress? Или вам нужны две разные строки? –