TGViewer
SQL и Анализ данных SQL и Анализ данных @databases_tg · 12.4K subscribers
Post #40 7.37K
💻 SQL JOIN (часть №2)

В предыдущем посте мы уже ознакомились с INNER JOIN и SELF JOIN, а сегодня поговорим о CROSS JOIN и OUTER JOIN.

▶️CROSS JOIN

SQL CROSS JOIN создает декартово произведение таблиц, генерируя все возможные комбинации строк. Это полезно, когда нет связи между таблицами, и требуется полная комбинация записей.
SELECT *
FROM sales_organization
CROSS JOIN sales_channel;

🤩Предположим, что у нас есть две таблицы: “sales_organization” и “sales_channel”, и мы хотим сформировать набор результатов, включающий все возможные комбинации организаций и каналов продаж.

Результат выполнения команды будет содержать все возможные комбинации организаций с каналами продаж, создавая декартово произведение двух таблиц.


▶️OUTER JOIN

SQL OUTER JOIN — это тип соединения, включающий все строки из одной таблицы и только совпадающие строки из другой таблицы.

Существует три типа: LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN.

🏮LEFT OUTER JOIN

LEFT OUTER JOIN объединяет две таблицы, сохраняя все записи из левой, даже если для них нет соответствий в правой. Например, для получения всех заказов и их клиентов, даже если у заказа нет клиента.
SELECT orders.order_id, orders.order_date, customers.customer_name
FROM orders
LEFT OUTER JOIN customers ON orders.customer_id = customers.customer_id;

🤩Этот запрос вернет все заказы из таблицы “orders” вместе со списком клиентов из таблицы “customers”. Если у заказа нет соответствующего клиента, столбец “customer_name” будет содержать значение NULL.


🏮RIGHT OUTER JOIN

RIGHT OUTER JOIN объединяет две таблицы, сохраняя все записи из правой, даже если для них нет соответствий в левой. Например, чтобы получить всех клиентов и их заказы, даже если у клиента нет заказов.
SELECT customers.customer_id, customers.customer_name, orders.order_date
FROM customers
RIGHT OUTER JOIN orders ON customers.customer_id = orders.customer_id;

🤩Этот запрос вернет всех клиентов из таблицы “customers” вместе со списком заказов из таблицы “orders”. Если у клиента нет соответствующих заказов, столбец “order_date” будет содержать значение NULL.


🏮FULL OUTER JOIN

FULL OUTER JOIN объединяет две таблицы, сохраняя все записи из обеих, даже если нет соответствий. Например, для получения всех сотрудников и отделов, включая сотрудников без отдела и отделы без сотрудников.
SELECT employees.employee_id, employees.employee_name, departments.department_name
FROM employees
FULL OUTER JOIN departments ON employees.department_id = departments.department_id;

🤩Этот запрос вернет всех сотрудников из таблицы “employees” вместе со списком отделов из таблицы “departments”. Если у сотрудника не указан отдел или у отдела нет сотрудников, соответствующие столбцы будут содержать значение NULL.


200
❤️ — и разбираем следующую тему

➡️ SQL Community | #полезное
  • ❤ 182
  • 👍 9
  • 🔥 5
More from @databases_tg
  1. Oct 7, 2026🌍 SQL-задача: ближайшие точки с подвохом Карта размером 100 × 100 замкнута: переход вправ…
  2. Oct 6, 2026SQL с подвохом: могут ли IS NULL и IS NOT NULL одновременно вернуть false? Что выведет Pos…
  3. Oct 2, 2026Как SQLite превращает числа в текст в 2 раза быстрее? Трюк с парами цифр Обычно число пере…
  4. Oct 2, 2026В субботу, 17 октября, Москва станет точкой притяжения для всех специалистов в области Rec…
  5. Oct 1, 2026Жиз
  6. Sep 30, 2026📝 5 уровней ИИ-агентов: от промпта до продакшена Context, loop, Jev, harness и evals: раз…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →