Очень простой вопрос о многих ко многим запросам MS-Access - PullRequest
0 голосов
/ 10 декабря 2018

Заранее извиняюсь за банальный и основной характер этого вопроса, но я новичок в Access.Я искал книги Access и библии, онлайн и т. Д. И не могу решить эту очень простую проблему:

У меня установлены отношения «многие ко многим» для сотрудников и мероприятий, которые они могут посещать.Сотрудник может присутствовать на многих мероприятиях.На мероприятии могут присутствовать многие сотрудники.У меня нет проблем с написанием запроса для перечисления сотрудников, которые были - скажем - Событие A ИЛИ Событие C. Что я не могу сделать, это написать запрос, чтобы перечислить сотрудников, которые были (например)Событие A И Событие C.

У меня есть три таблицы:
Сотрудник .Ключ: EmployeeId.( Также содержит имя, должность и т. Д. )
EmployeeEvent .Ключи: ID, EmployeeID
Событие .Ключ: EventID ( Также содержит имя события, дату и т. Д. )
Ссылки сотрудников на EmployeeEvent на Employee.EmployeeID = EmployeeEvent.EmployeeID
Ссылки на события EmployeeEvent на Event.EventID = EmployeeEvent.ID
Нет проблем с запросами OR.Просто не знаю, как заставить И запросы работать.
Это мой первый пост, заранее большое спасибо за помощь!

1 Ответ

0 голосов
/ 10 декабря 2018

Грубым методом было бы создать союз:

Select employeeID, EventID from EmployeeEvent
where employeeID = 9999999 and eventID = 8888

Union

Select employeeID, EventID from EmployeeEvent
where employeeID = 9999999 and eventID = 7777

"Союз" избавится от любых дубликатов в результатах.«Union All» сохранит все дубликаты.

Этот запрос не будет отображаться в вашем визуальном редакторе запросов.Он скажет что-то вроде «Не удается отобразить», но он должен работать.

Вы также можете выполнить два запроса на выбор, по одному для каждой искомой комбинации Сотрудник / Событие, а затем связать два запроса во внутреннем объединении.Сотрудники, которые посетили оба мероприятия, должны показать результаты.Все зависит от того, как вы хотите увидеть свои результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...