Соединение SQL при нескольких условиях

Soedinenie Sql Pri Neskol Kih Usloviah



Одной из наиболее распространенных функций реляционных баз данных являются соединения. Соединения SQL относятся к процессу объединения данных из двух или более таблиц в один набор результатов на основе стандартных функций или столбцов.

Объединение таблиц позволяет нам извлекать данные, хранящиеся в нескольких таблицах, в одном запросе, что делает его мощным инструментом для анализа данных и составления отчетов.







В этом руководстве мы узнаем, как выполнять соединения SQL при нескольких условиях. Мы научимся использовать логические операторы «И» и «ИЛИ» для объединения данных на основе нескольких условий.



SQL объединяется при нескольких условиях

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



Мы используем оператор AND, чтобы убедиться, что все указанные условия верны. Если хотя бы одно из условий неверно, все выражение становится ложным. Это делает оператор AND исключительным инструментом для экстремальной фильтрации данных.





С другой стороны, мы используем оператор ИЛИ, когда нам нужно, чтобы хотя бы одно из условий было истинным. Это делает его более «свободным» методом фильтрации данных, поскольку результирующая запись должна соответствовать хотя бы одному определенному параметру.

Функциональность операторов И и ИЛИ не меняется даже в случае соединений SQL.



Пример множественных объединений SQL

Чтобы понять, как работать с объединениями по нескольким условиям, лучше всего работать с примером.

Для этой демонстрации мы используем базу данных Sakila, которая была разработана для изучения всех возможностей SQL.

Предположим, мы хотим получить данные из таблиц film и film_actor. Во-первых, мы хотим найти всех актеров, которые снимались в фильме с рейтингом PG или PG-13 и длиной от 90 до 120.

В таком сценарии нам нужно выполнить соединение с несколькими условиями, как показано ниже:

ВЫБЕРИТЕ имя_актера, фамилия_актера, название фильма, год_выпуска_фильма, рейтинг фильма.
ОТ актера
ПРИСОЕДИНЯЙТЕСЬ к film_actor ON actor.actor_id = film_actor.actor_id
ПРИСОЕДИНЯЙТЕСЬ к фильму Film_actor.film_id = film.film_id
ГДЕ фильм.длина МЕЖДУ 90 И 120
И кино.рейтинг В ( 'PG' , 'ПГ-13' ) ;


Как вы можете видеть из предыдущего запроса, мы указываем SQL выполнить соединение между таблицами актера и фильма_актера на основе столбца актера_идентификатора. Мы также выполняем соединение между таблицами film_actor и film, используя столбец film_id. Мы также гарантируем определение двух условий с помощью предложения WHERE для фильтрации таблицы результатов на основе года выпуска и продолжительности фильма.

В результате таблица выглядит следующим образом:


Мы также можем указать несколько условий на основе оператора ИЛИ, как показано в следующем примере запроса:

ВЫБЕРИТЕ фильм.название, фильм.арендная_ставка, категория.название
ИЗ фильма
ПРИСОЕДИНЯЙТЕСЬ к film_category ON film.film_id = film_category.film_id
ПРИСОЕДИНЯЙТЕСЬ к категории ON film_category.category_id = category.category_id
ГДЕ категория.название В ( 'Действие' , «Комедия» )
И фильм.rental_rate > 3.00 ;


В результате таблица выглядит следующим образом:

Заключение

В этом руководстве показано, как работать с соединениями SQL на основе нескольких условий с использованием операторов И и ИЛИ. Это обеспечивает более детальную фильтрацию данных.