Наиболее мощной особенностью языка SQL является возможность сочетания различных таблиц в оперативной памяти СУБД при выполнении запросов. Сочетания очень часто используются для анализа данных. Как правило, данные находятся в разных таблицах, что позволяет их более эффективно хранить (поскольку информация не дублируется), упрощает обработку данных и позволяет масштабировать базу данных (возможно добавлять новые таблицы с дополнительной информацией).
Таблицы баз данных, используемых в СУБД MS Access являются реляционными таблицами, то есть все таблицы можно связать между собой по общим полям.
Сочетание таблиц очень простая процедура. Следует указать все таблицы, которые будут включены в сочетание и "объяснить" СУБД, как они будут связаны между собой. Соединение производится с помощью слова WHERE, например:
Run SQLSELECT DISTINCT Seller_name, Product
FROM Sellers, Sumproduct
WHERE Sellers.City = Sumproduct.City
Соединив две таблицы, мы смогли увидеть какие товары реализует каждый продавец. Рассмотрим код запроса более подробно, поскольку он немного отличается от обычного запроса. Оператор SELECT начинается с указанием столбцов, которые мы хотим вывести, однако эти поля находятся в разных таблицах, предложение FROM содержит две таблицы, которые мы хотим соединить в операторе SELECT, таблицы сочетаются с помощью слова WHERE. Обязательно нужно указывать полное название поля (Таблица.Поле), поскольку поле City имеется в обеих таблицах.
В предыдущем примере для сочетания таблиц мы использовали слово WHERE, которое проверяет на основе эквивалентности двух таблиц. Сочетание такого типа называется также "внутренним сочетанием". Существует также и другой способ сочетания таблиц, явно указывающий на тип сочетания. Рассмотрим следующий пример:
Run SQLSELECT DISTINCT Seller_name, Product
FROM Sellers
INNER JOIN Sumproduct
ON Sellers.City = Sumproduct.City
В этом запросе вместо WHERE мы использовали конструкцию INNER JOIN...ON..., которая дала аналогичный результат. Несмотря на то, что сочетание с предложением WHERE является короче, все же лучше использовать INNER JOIN, поскольку она является более гибкой, о чем будет подробнее рассказано в следующих разделах.