Visual Basic 6. Руководство разработчика


     Кулинарные сайты подробно. |     

SQL-объединения - часть 2


FROM (первичная таблица) INNER JOIN (вторичная таблица) ON

(первичная таблица).(поле) (сравнение) (вторичная таблица).(поле)

Рассмотрим подробнее несколько примеров. В простейшем виде внутренние объединения похожи на предложения WHERE. Следующий SQL-оператор объединяет записи из таблиц Titles и Publishers базы данных BIBLIO, если у них совпадают поля PubID. Она возвращает набор записей с именами всех книг и их издателей.

SELECT Titles.Title, Publishers.Name FROM Titles, Publishers

WHERE Titles.PubID = Publishers.PubID

Можно получить такой же RecordSet, используя внутреннее объединение.

SELECT Titles.Title, Publishers.Name FROM Titles, Publishers,

INNER JOIN Titles ON Titles.PubID = Publishers.PubID

Результаты работы этой команды показаны ниже.

Рассмотрим более сложную операцию объединения. На этот раз необходимо получить из базы данных BIBLIO все названия изданий наряду с их авторами и издателями. Следующее утверждение действительно сложно и отражает реальную ситуацию.

SELECT Titles.Title, Titles.ISBN, Authors.Author,

Titles.[Year.Published], Publishers.[Company Name] FROM

(([title author] INNER JOIN Titles ON

[title author].ISBN = Titles.ISBN) INNER JOIN Authors ON

[title author].Au ID = Authors.Au ID) INNER JOIN Publishers ON

Titles.PubID = Publishers.PubID ORDER BY Titles.Title

Результаты работы команды показаны ниже.

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

В списке полей устанавливаются следующие поля:

•   Titles.TitIe - название книги;

• Titles.ISBN - ISBN код книги;

•  Authors.Author — автор книги;

•  Titles.[Year Published] — год публикации книги;

•  Publishers. [Company Name] — издатель книги.

Вы, возможно, помните, что база данных BIBLIO содержит четыре таблицы, а наш запрос требует данных из всех таблиц Фактически, никакие данные из таблицы Title Author в результатах запроса не отображаются, но эта таблица связывает названия и имена авторов (через ISBN код книги), поэтому ее необходимо использовать в SQL-запросе.




Содержание  Назад  Вперед