Синтаксис операции соединения имеет следующий вид:
SELECT <Список выбора>
FROM Таблица1, Таблица2 [, Таблица3]
WHERE [Таблица1.]столбец <оператор соединения>
[Таблица2]столбец
Обычно в качестве оператора соединения используют оператор равенства.
Пример:
SELECT Наименование лаборатории, COUNT(СП_СЛ.Код лаборатории) FROM СП_СЛ, ЛАБ WHERE СП_СЛ.Код лаборатории=ЛАБ.Код лаборатории GROUP BY СЛ_СП.Код лаборатории
Возвращает наименование лаборатории и количество служащих, работающих в лаборатории.
Для создания соединения в синтаксисе SQL-92 предусмотрены ключевые слова JOIN, CROSS JOIN, NATURAL JOIN
SELECT <Список выбора>
FROM Таблица1 JOIN Таблица2
[ON [Таблица1.]столбец <оператор соединения> [Таблица2.]столбец
| USING (столбец)]
Пример:
SELECT Наименование лаборатории, COUNT(СП_СЛ.Код лаборатории) FROM СП_СЛ JOIN ЛАБ ON СП_СЛ.Код лаборатории=ЛАБ.Код лаборатории GROUP BY СЛ_СП.Код лаборатории
Если используется оператор CROSS JOIN, то связанные столбцы определяются в предложении WHERE (если предложение WHERE пропущено, то результатом соединения является декартово произведение)
Оператор NATURAL JOIN применяется, только если две таблицы имеют одну пару одинаковых столбцов. Соединение выполняется на основе этих столбцов, при этом предложения IN, USING или WHERE для соединения не нужны и не определяются.
Столбцы в <Списке выбора> при соединении будут включаться в результат в указанном порядке.
SELECT * SELECT [Таблица1.]*, [Таблица2.]*
Необдуманное использование таких операторов при соединении может привести к большей загрузке системы, чем это необходимо. При решении практических задач нужно тщательно выбирать столбы, участвующие в результате.
При соединении таблиц удобно использовать псевдонимы в списке таблиц.