У меня есть 3 таблицы: Employees, Locations и EmpLocation
- Сотрудники хранят данные сотрудников с Employee_ID в качестве первичного ключа,
- Locations хранит данные о местоположении с Location_ID.
- EmpLocation хранит Employee_ID и Location_ID.У каждого сотрудника может быть несколько местоположений.
Мне нужно создать интерактивную сетку, которая будет отображать данные для всех сотрудников, включая тех, для которых им не назначено местоположение.Затем пользователь должен иметь возможность выбрать местоположение для тех сотрудников, которые имеют его как нулевое, а также добавить дополнительное местоположение для любого сотрудника.Я понял, что мне нужно два списка выбора в редактируемой сетке.Таким образом, можно добавить новую строку, выбрав сотрудника и соответствующее местоположение.
Я использовал следующий запрос:
SELECT el.Employee_ID, el.Location_ID
FROM EmpLocations el
Затем я сделал каждый столбец списком выбора, из которого первый извлекает данные изТаблица сотрудников:
SELECT Employee_FName, Employee_ID FROM Employees
и вторая - из местоположений:
SELECT Location_Name, Location_ID FROM Locations
Все выглядит хорошо, но таким образом я получаю только сотрудников, которым назначено хотя бы одно место.Мне нужно увидеть всех сотрудников и определить, есть ли у них назначенные местоположения (каждому сотруднику может быть назначено более одного местоположения).
Поэтому я изменил исходный запрос для сетки на:
SELECT e.Employee_ID, el.Location_ID
FROM Employees e
LEFT JOIN EmpLocations el ON e.Employee_ID=el.Employee_ID
Но в этом случае можно ли будет сделать сетку обновляемой, так как задействованы две таблицы?