В предыдущем посте мы уже ознакомились с INNER JOIN и SELF JOIN, а сегодня поговорим о CROSS JOIN и OUTER JOIN.
SQL CROSS JOIN создает декартово произведение таблиц, генерируя все возможные комбинации строк. Это полезно, когда нет связи между таблицами, и требуется полная комбинация записей.
SELECT *
FROM sales_organization
CROSS JOIN sales_channel;
🤩 Предположим, что у нас есть две таблицы: “sales_organization” и “sales_channel”, и мы хотим сформировать набор результатов, включающий все возможные комбинации организаций и каналов продаж.
Результат выполнения команды будет содержать все возможные комбинации организаций с каналами продаж, создавая декартово произведение двух таблиц.
SQL OUTER JOIN — это тип соединения, включающий все строки из одной таблицы и только совпадающие строки из другой таблицы.
Существует три типа: LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL 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 объединяет две таблицы, сохраняя все записи из правой, даже если для них нет соответствий в левой. Например, чтобы получить всех клиентов и их заказы, даже если у клиента нет заказов.
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 объединяет две таблицы, сохраняя все записи из обеих, даже если нет соответствий. Например, для получения всех сотрудников и отделов, включая сотрудников без отдела и отделы без сотрудников.
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
Please open Telegram to view this post
VIEW IN TELEGRAM
❤182👍9🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Завершаем серию обучающих постов по SQL JOIN полезной шпаргалкой.
Кто ещё не читал посты — рекомендуем к прочтению:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥70👍18❤11❤🔥2
Изучите все основы языка структурированных запросов в этом комплексном курсе SQL.
Вы будете создавать реальные таблицы БД и практиковаться в запросах к ним, как это делает веб-разработчик серверов в производственных условиях.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥5👍2
🤔35👍10🥱2❤1🔥1💊1
Делимся GitHub-репозиторием, в котором собраны советы по улучшению SQL-запросов: методы повышения читаемости кода и предотвращения распространённых ошибок, рекомендации по оптимизации.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁55💯8❤6
В данном цикле статей автор собрал вопросы по SQL, с которыми вы можете столкнуться на собеседовании.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🤔10🔥6❤4
LIKE — это оператор, который используется для сравнения значений в столбцах с шаблоном, который вы задаете. Он позволяет искать строки, которые содержат определенные символы или фразы.
Запрос из примера на картинке вернёт все строки из таблицы
customers, в которых last_name начинается с букв «Sm».🏮 LIKE чувствителен к регистру символов (например «A» и «a» будут восприниматься как разные символы).
Ставь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤93👍11
Назовите четыре основных типа соединения в SQL.
Ответ:
Подробнее об INNER JOIN, FULL OUTER JOIN, LEFT JOIN, RIGHT JOIN рассказали в серии постов:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥12❤6
This media is not supported in your browser
VIEW IN TELEGRAM
NocoDB — превращает любой MySQL, PostgreSQL, SQL Server, SQLite и MariaDB в интеллектуальную электронную таблицу.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21⚡7👍2❤🔥1
💯26👍5
SQL Island — обучающая игра для изучения языка SQL, в которой вам предстоит спастись с острова, решая задачи на языке SQL.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤28👍16😢2
В статье даются советы по работе с PostgreSQL, включая оптимизацию запросов, настройку схем и ролей, а также методы улучшения производительности и мониторинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4