MS Access Как мне запросить результаты другого запроса

#ms-access

#ms-access

Вопрос:

У меня есть существующий запрос (Query1), который возвращает 5 полей из таблицы. Затем я хочу выполнить другой запрос (Query2), который использует каждую запись из одного из полей, возвращаемых в Query1, для возврата полей из другой таблицы. Обе таблицы имеют общее поле (проект). Query1 возвращает проект и 4 дополнительных поля. Для каждой записи, возвращаемой запросом 1, я хочу запустить запрос2 на основе поля Project. Как мне спроектировать Query2?

Заранее спасибо за вашу помощь!

Ответ №1:

Поскольку обе таблицы имеют общее поле (Project), вы должны иметь возможность ОБЪЕДИНИТЬ их в одном запросе, не беспокоясь о подзапросах. Что-то вроде этого:

 SELECT *
FROM Table2 
INNER JOIN Table1 ON Table2.Project = Table1.Project;
 

Однако, если Query1 выполняет определенную операцию, чтобы вернуть только эти 5 записей, тогда вы можете просто объединить результаты Query1 с этой другой таблицей. Итак, ваш запрос2 может выглядеть так:

 SELECT *
FROM Table2
INNER JOIN Query1 ON Table2.Project = Query1.Project;
 

Комментарии:

1. Большое вам спасибо за попытку помочь мне!! Я только что попробовал это, но он отображает все пробелы. В таблице 2 есть несколько элементов с одинаковым именем проекта. Это не проблема, не так ли?

2. Привет, Скотт. Можете ли вы опубликовать запрос, который вы пробовали?

3. ВЫБЕРИТЕ * ИЗ задач INNER JOIN Query1 в задачах. ProjectName = Query1.ProjectName;

4. Является ли ProjectName текстовым полем? Если это так, убедитесь, что значения в ProjectName написаны / отформатированы одинаково, не содержат лишних пробелов и т.д. В обеих таблицах. Объединение текстовых полей обычно не рекомендуется из-за этих проблем.