Здравствуйте, уважаемые форумчане!
Суть такова.
Есть база с таблицами работ- Work, материалов-Mat и привязки материалов к определенным работам -WorkMat. Связь между Mat и Work через WorkMat многие-ко-многим. Т.е. для некоторых работ есть материалы и любой материал может использоваться для разных работ. Пример в Access вложен с примером моего пробного запроса.
Поля Работы (Work) - ID_Work(ключ), Name, Union
Поля Материалов (Mat) - ID_Mat(ключ), Name, Union
Связывающая таблица (WorkMat) - ID_Work(ключ), ID_Mat(ключ), Rashod (Расход материала для конкретной работы)
Связь один-ко-многим Work.ID_Work -> WorkMat.ID_Work
Связь один-ко-многим Mat.ID_Mat -> WorkMat.ID_Mat
Нужно сделать запрос, который бы брал таблицу материалов (Mat) и присоединял к ней столбцы из таблицы WorkMat. Но нужно, чтобы в присоединямых столбцах брались только записи для
ОДНОЙ работы, т.е. нужен фильтр, например WorkMat.ID_Work=2
Запрос пока в таком виде:
SELECT Mat.*, WorkMat.*
FROM Mat LEFT JOIN WorkMat ON Mat.ID_Mat = WorkMat.ID_Mat
ORDER BY Mat.[Name];
что и как мне нужно прикрутить, что бы заработало в Access. Пробовал после JOIN подзапрос сделать, но, видимо что-то неправильно делаю.
http://www.sql.ru/forum/1231570/vneshnee-prisoedinenie-left-join