INNER в Oracle SQL — как выполнять соединение таблиц

🟢 INNER в Oracle SQL. Введение

Когда вам нужно соединить строки из двух таблиц, где значения совпадают, используется INNER JOIN, и ключевое слово INNER здесь играет важную роль. Это самый распространённый тип соединения в SQL, позволяющий получить только те строки, которые имеются в обеих таблицах.


🔤 Написание

sql
SELECT столбцы
FROM таблица1
INNER JOIN таблица2 ON таблица1.ключ = таблица2.ключ;

Ключевое слово INNER можно опустить — по умолчанию используется именно оно.


🔄 Где используется

  • Соединение заказов и клиентов

  • Объединение таблиц с помощью внешнего ключа

  • Сбор данных из связанных таблиц

  • Работа с представлениями и аналитикой

  • Улучшение структуры отчётов


🧪 10 Примеров использования

1️⃣ Простой INNER JOIN

sql
SELECT e.first_name, d.department_name
FROM employees e
INNER JOIN departments d
ON e.department_id = d.department_id;

2️⃣ I N N E R без слова INNER (по умолчанию)

sql
SELECT e.first_name, d.department_name
FROM employees e
JOIN departments d
ON e.department_id = d.department_id;

3️⃣ JOIN с условиями в WHERE

sql
SELECT o.order_id, c.customer_name
FROM orders o
INNER JOIN customers c ON o.customer_id = c.customer_id
WHERE o.status = 'SHIPPED';

4️⃣ Соединение трёх таблиц

sql
SELECT o.order_id, c.name, p.product_name
FROM orders o
INNER JOIN customers c ON o.customer_id = c.customer_id
INNER JOIN products p ON o.product_id = p.product_id;

5️⃣ Использование псевдонимов

sql
SELECT e.first_name, m.first_name AS manager_name
FROM employees e
JOIN employees m ON e.manager_id = m.employee_id;

6️⃣ JOIN по нескольким условиям

sql
SELECT *
FROM orders o
JOIN shipments s
ON o.order_id = s.order_id AND o.ship_date = s.ship_date;

7️⃣ INNER JOIN с выражениями

sql
SELECT *
FROM employees e
JOIN departments d
ON NVL(e.department_id, 0) = NVL(d.department_id, 0);

8️⃣ INNER в представлении

sql
CREATE VIEW emp_dept_view AS
SELECT e.first_name, d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.department_id;

9️⃣ I N N E R с подзапросом в JOIN

sql
SELECT o.order_id, stats.total
FROM orders o
JOIN (
SELECT order_id, SUM(amount) AS total
FROM order_items
GROUP BY order_id
) stats ON o.order_id = stats.order_id;

🔟 I N N E R в аналитических запросах

sql
SELECT c.region, COUNT(o.order_id)
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
GROUP BY c.region;

🧩 Заключение

INNER — это стандартный способ объединять связанные таблицы. Он возвращает только совпадающие строки, что делает его идеальным для работы с чистыми, логично связанными данными.

💡 Запомни:

  • INNER JOIN = строки, где совпадения есть в обеих таблицах

  • Можно использовать без ключевого слова INNER

  • Хорошо сочетается с GROUP BY, HAVING, подзапросами

  • Упрощает построение отчётов и объединение данных


🔜 Следующая статья:

INDEX в Oracle SQL — как ускорить запросы с помощью индексов


 

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии