Получить полный список уникальных значений из нескольких столбцов в нескольких таблицах - PullRequest
1 голос
/ 25 августа 2010

История, если хотите: У меня странная ситуация. Организация, связанная с моей, предоставляет нам базу данных, которую мы активно используем; некоторые другие организации также используют его, но наши записи легко превышают 90% от общего количества. У нас есть веб-интерфейс для ввода данных, который подключен к действующей базе данных, но мы получаем только внутренние данные в виде файла Access для выбранных таблиц, которые отправляются нам периодически.

В общем, это хлопотно, но критическая проблема, с которой я сталкиваюсь в каждом отчете, - это дифференцировать записи, сделанные нашей организацией, от других. Записи идентифицируются персоналом, который их создал, но у меня нет (и вряд ли получится) самой таблицы пользователей - это означает, что мне нужно вручную вести список того, какие идентификаторы пользователей соответствуют каким пользователям, и если эти пользователи принадлежат нашей организации и т. д. Сейчас я создаю своего рода теневую БД, которая связывается с извлечением данных и имеет запросы, которые добавляют такую ​​информацию к таблицам данных - поэтому, когда я вынимаю список записей, я может получить их по идентификатору пользователя, имени, организации, роли и т. д.

Проблема: не все пользователи создают или изменяют записи всех типов, поэтому идентификаторы пользователей, которые мне нужны для составления этого списка, разбросаны по нескольким таблицам. Как я могу создать список уникальных идентификаторов пользователей из всех этих таблиц? В настоящее время я использую объединение идентификаторов из двух самых больших таблиц, но я не знаю, могу ли я составить подзапрос на подзапросе, чтобы заставить это работать - и я не решаюсь погрузиться в написание этого для Access, не зная если это в конечном итоге сработает. Меня тоже интересуют другие методы.

TL; DR: Какой самый простой способ получить столбец уникальных значений нескольких столбцов, которые распределены по нескольким таблицам?

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

1 Ответ

4 голосов
/ 25 августа 2010

Объедините запросы SELECT для каждой из таблиц в запрос UNION.Запрос UNION возвращает различные значения.

SELECT UserID FROM Table1
UNION
SELECT UserID FROM Table2
UNION
SELECT UserID FROM Table3;
...