Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Синтаксис неявного INNER JOIN в SQL-89
Синтаксис неявного INNER JOIN в SQL-89
В стандарте SQL-89 таблицы, участвующие в соединении, задаются списком с разделяющими запятыми в предложении FROM запроса SELECT. Условия для связи таблиц задаются среди условий поиска предложения WHERE. Не существует специального синтаксиса для указания, какие условия используются для поиска, а какие - для соединения. Предполагается, что условия соединения самоочевидны. Обратившись назад, к введению в предложение JOIN, можно назвать старый синтаксис неявным соединением.
Синтаксис неявного соединения может осуществлять только внутреннее соединение - реализация SQL, которая не поддерживает предложение JOIN, не может выполнять внешнее соединение.
Вот предыдущий пример, который переписан как неявное соединение:
SELECT
Table1.PK,
Table1.COL1,
Table2.PKX,
Table2.COLX
FROM Table1, Table2
WHERE Table1.PK = Table2.FK
AND <условия-поиска>
Неявное соединение поддерживается в Firebird для совместимости с кодом существующих приложений. Оно не рекомендуется для новых приложений, потому что оно несовместимо с синтаксисом других видов соединений и делает поддержку и само- документируемость довольно неуклюжей. Некоторые программы доступа к данным, включая драйверы, могут не обрабатывать правильно синтаксис SQL-89 по причине проблем при синтаксическом анализе в различении условий соединения и условий поиска. Можно предположить, что в будущем стандарте этот синтаксис будет отсутствовать.
- Синтаксис явного INNER JOIN в SQL-92
- 1.2. Базовый синтаксис и семантика Ruby
- Расширения SQL
- Системные переменные ROWS_AFFECTED, GDSCODE, SQLCODE, TRANSACTIONJD, CONNECTIONJD
- SET TERM больше не нужен в isql
- Реализация языка SQL
- Дальнейшее развитие языка SQL
- Вызов хранимых процедур InterBase с использованием стандартного синтаксиса ODBC
- 1.5.1. Синтаксис
- Использование isql -a
- 1.4.4. Использование нетрадиционного синтаксиса на диаграммах функциональной модели
- Базы данных и СУБД. Введение в SQL