Внутреннее соединение
Внутреннее соединение
Следующий оператор соединяет две таблицы, которые связаны через внешний ключ FK правой таблицы (Table2) и первичный ключ PK таблицы Table1:
SELECT
Таblе1.PK,
Table1.COL1,
Table2.PKX,
Table2.COLX
FROM Table1 INNER JOIN Table2
ON Table1.PK = Table2.FK
WHERE... условия-поиска
Это спецификация внутреннего соединения. Вскоре мы рассмотрим внешнее соединение. На рис. 22.1 показаны два потока, как они существуют в таблицах, и генерируемый набор данных.
Рис. 22.1. Внутреннее соединение
Как показывает диаграмма, внутреннее соединение объединяет два потока таким образом, что несоответствующие строки в любом из потоков отбрасываются. Другое название внутреннего соединения - исключающее соединение, поскольку его правила означают, что несоответствующие пары обоих потоков исключаются из выходного набора данных.
Стандарты SQL описывают два варианта синтаксиса внутреннего соединения. Предыдущий пример использует более современный синтаксис SQL-92, отличающийся от более старого, более ограниченного SQL-89, указывая явное соединение, потому что в примере используется явное предложение JOIN для задания условий соединения.
Синтаксис неявного 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 по причине проблем при синтаксическом анализе в различении условий соединения и условий поиска. Можно предположить, что в будущем стандарте этот синтаксис будет отсутствовать.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Внутреннее представление переменной jiffies
Внутреннее представление переменной jiffies Переменная jiffies исторически всегда представлялась с помощью типа unsigned long и, следовательно, имеет длину 32 бит для 32-разрядных аппаратных платформ и 64 бит для 64-разрядных. В случае 32-разрядного значения переменной jiffies и частоты
ГЛАВА 4. ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ ФАЙЛОВ
ГЛАВА 4. ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ ФАЙЛОВ Как уже было замечено в главе 2, каждый файл в системе UNIX имеет уникальный индекс. Индекс содержит информацию, необходимую любому процессу для того, чтобы обратиться к файлу, например, права собственности на файл, права доступа к
2.1. Модемное соединение
2.1. Модемное соединение 2.1.1. Выбор модема Модем модему рознь. Модемы различаются по разным признакам, но главные из них - это способ подключения к компьютеру и организация взаимодействия с ним.Модем может подключаться или к СОМ-порту или к шине USB. Раньше у Linux были проблемы
Урок № 61. Внутреннее перемещение ТМЦ
Урок № 61. Внутреннее перемещение ТМЦ Одной из распространенных операций складского учета является операция по внутреннему перемещению товарно-материальных ценностей внутри предприятия. В этом случае перемещаемые ценности не покидают пределы предприятия, а лишь
Урок № 75. Внутреннее перемещение основных средств
Урок № 75. Внутреннее перемещение основных средств Перемещение объектов основных средств внутри предприятия – это операция, встречающаяся довольно-таки часто. Например, токарный станок может передаваться из производственного цеха в сборочный, оргтехника из отдела
Inner Glow (Внутреннее свечение)
Inner Glow (Внутреннее свечение) Эффект Inner Glow (Внутреннее свечение), аналогично эффекту внутренней тени, позволяет задать свечение элемента по внутреннему его контуру. Во всем остальном его действие совпадает с действием эффекта Outer Glow (Внешнее свечение) (рис. 8.13). Рис. 8.13.
Внутреннее представление свойств в C#
Внутреннее представление свойств в C# Многие программисты (особенно те, которые привыкли использовать C++) стремятся использовать традиционные префиксы get_ и set_ для методов чтения и модификации (например, get_FullName() и set_FullName()). Против самого соглашения возражений нет. Однако
Внутреннее представление индексаторов типов
Внутреннее представление индексаторов типов Мы рассмотрели примеры метода индексатора в C#, и пришло время выяснить, как представляются индексаторы в терминах CIL. Если открыть числовой индексатор типа Garage, то будет видно, что компилятор C# создает свойство Item, которое
Внутреннее представление перегруженных операций
Внутреннее представление перегруженных операций Подобно любому элементу программы C#, перегруженные операции представляются специальными элементами синтаксиса CIL. Откройте, например, компоновочный блок OverloadedOps.exe с помощью ildasm.exe. Как показано на рис. 9.1, перегруженные
Внутреннее представление пользовательских подпрограмм преобразования
Внутреннее представление пользовательских подпрограмм преобразования Как и в случае перегруженных операций, те методы, которые обозначены ключевыми словами implicit или explicit, получают "специальные имена" в терминах CIL: op_Implicit и op_Explicit соответственно (рис. 9.2). Рис. 9.2.
Внутреннее устройство Pocket PC
Внутреннее устройство Pocket PC Если не брать в расчет сам факт миниатюрности и отсутствие некоторых привычных на настольном ПК устройств, таких как клавиатура и мышь, то можно считать, что Pocket PC является полноценным компьютером. Мало того, по своим параметрам он является
Внутреннее устройство технологии
Внутреннее устройство технологии Когда любой запрос вызывает хранимую процедуру, то текущее определение этой хранимой процедуры копируется в этот момент в кэш метаданных. В Классическом сервере эта копия присутствует в течение всего времени пользовательского
ОПЫТЫ: Внутреннее расследование
ОПЫТЫ: Внутреннее расследование Автор: Сергей ЛеоновСегодня мы займемся варварским делом — разборкой одной из современных цифровых фотокамер. Не слишком часто удается разобрать до винтика подобную технику, но раз уж такая возможность представилась, почему бы не
СРЕДНЕЕ ЗВЕНО: Внутреннее перепрограммирование
СРЕДНЕЕ ЗВЕНО: Внутреннее перепрограммирование Автор: Владимир ГуриевЛюбое изменение рубрикатора заслуживает объяснения - "А это зачем вы картину повесили?" "А она не просто так висит, а дырку на стене закрывает", - однако, как правило, мы им пренебрегаем, полагая, что