Об’єднайте дві таблиці в одну віртуальну таблицю за допомогою JOIN
Попереднє зауваження
синтаксис
- Версія з комою:
- Найпростіша форма ВНУТРІШНЬОГО ПРИЄДНАННЯ
- Кілька посилань:
- Замість INNER також може використовуватися одне з таких ключових слів:
- Замість оператора І можна використовувати АБО, можна вказати більше двох виразів порівняння, а І та АБО можна комбінувати.
- Таблицю також можна вказати двічі, одна говорить про одну Самозв’язування, оскільки рядки таблиці пов’язані з іншими рядками таблиці. Окрім версії коми, для таблиці для чіткого опису стовпців потрібно принаймні одне псевдонім.
Приклади
- Ця версія коми комбінує кожен рядок таблиці ARTIKEL з кожним рядком таблиці SALES і видає результат 4 * 9 = 36 рядків повністю. Якщо порівняти два стовпці A.A_NR та U.A_NR, помітно, що продажам у більшості випадків присвоюються статті, які відрізняються від статті, згаданої у продажах. Ці (36 - 9) = 27 результати безглузді. Умова фільтра, зазначена в реченні ON у наступному реченні JOIN, видаляє ці записи даних.
- Це найпростіша і найчастіше використовувана форма ПРИЄДНАЙТЕСЯ. Стовпець A. A_NR також є первинним ключем таблиці ARTIKEL; для статті може бути кілька замовлень, тобто рядків у таблиці SALES. Усі рядки, у яких два стовпці A.A_NR та U.A_NR не збігаються, видаляються із наведеної вище версії коми.
Цей запит спочатку відповідає всім тим рядкам між собою, які стосуються тієї самої дати та тієї самої статті. Оскільки третьою умовою є перевірка, чи відрізняється стовпець A_STUECK, спочатку видаляються всі комбінації дати та статті, що посилаються на один і той же рядок. Однак те саме виконало б тест U1.UMSATZ_NR <> U1.UMSATZ_NR. Проте фактично використаний тест додатково видаляє всі комбінації дати та статті, для яких стаття була продана кілька разів з однаковою кількістю штук; виводяться лише ті комбінації, в яких стаття продавалась принаймні у двох різних кількостях штук за один день. Оскільки кожна комбінація рядків, яка відповідає цим умовам, також виконується, якщо обидва рядки поміняні місцями, умова <> також може бути замінена на U2.Value_No, тому 25.06.1999 видано лише пункт 11, який був проданий двічі двадцять разів. Загалом:

Зауваження
- Якщо ви пов'язуєте таблиці, зазвичай слід використовувати один із методів JOIN. Зокрема, слід уникати "старої" техніки, яка використовує версію, що містить дужки, і переводить речення ON у стан WHERE. Порівняйте два наступні подання: з У першій версії, яку не можна використовувати, умова зв’язування двох таблиць змішується з умовою, яка виділяє кілька рядків. Однак друга версія відокремлює зв'язування таблиць від скорочення стовпців. Як правило, спочатку виконуються всі умови WHERE, які зменшують кількість рядків; JOIN створюється лише з використанням решти кількості рядків.
- З'єднання ЛІВО та ПРАВО симетричні між собою. Таким чином, наступні два твердження для визначення елементів, що ніколи не продаються, повинні генерувати одну і ту ж діаграму (додайте товар, який ніколи не продавався, як зазначено вище): і OUTER JOIN поєднує вліво/вправо і приймає як відповідні рядки, так і нульові значення з обох таблиць.
- Конструкції лівого або правого об’єднання є обов’язковими, якщо таблиця містить посилання на необов’язкову таблицю меж. Класичний приклад призначає заголовки людям, заголовки (доктор, доктор медичних наук, професор доктор) зберігаються в таблиці полів, таблиця осіб містить стовпець з ідентифікатором таблиці заголовків. Якщо є люди без заголовка, у таблиці полів можна створити запис без тексту, а для зв’язування використовувати ВНУТРІШНЄ СПОСІБ, або такий запис відсутній. Це означає, що відповідна комірка в таблиці осіб порожня, так що ліве/праве з'єднання повинно бути сформовано від основної таблиці до крайньої таблиці, якщо потрібно знайти всіх осіб.
Приклад для MS-SqlServer: CoalEsce повертає перший вираз у списку, який відрізняється від нуля. Якщо заголовок існує, його буде виведено з пробілом як роздільник, інакше до попереднього виводу, що складається з прізвища, коми та імені, буде додано порожній рядок.