SQL Join em várias condições

Sql Join Em Varias Condicoes



Um dos recursos mais comuns dos bancos de dados relacionais são as junções. As junções SQL referem-se ao processo de combinar os dados de duas ou mais tabelas em um único conjunto de resultados com base em recursos ou colunas padrão.

Juntar as tabelas nos permite recuperar os dados armazenados em várias tabelas em uma única consulta, o que a torna uma ferramenta poderosa para análise e geração de relatórios de dados.







Neste tutorial, descobriremos como executar as junções SQL em várias condições. Aprenderemos a usar os operadores lógicos “AND” e “OR” para unir os dados com base em várias condições.



Junções SQL em várias condições

Podemos especificar várias condições usando os operadores AND ou OR no SQL. Esses operadores nos permitem definir um conjunto de expressões booleanas que são avaliadas e comparadas com o conjunto resultante.



Usamos o operador AND para garantir que todas as condições especificadas sejam verdadeiras. Se pelo menos uma das condições não for verdadeira, toda a expressão será falsa. Isso torna o operador AND uma ferramenta excepcional para filtragem extrema de dados.





Por outro lado, usamos o operador OR quando precisamos que pelo menos uma das condições seja verdadeira. Isso o torna um método de filtragem de dados mais “solto”, pois o registro resultante deve atender apenas a pelo menos um parâmetro definido.

A funcionalidade dos operadores AND e OR não muda mesmo no caso de junções SQL.



Exemplo de Múltiplas Junções SQL

Para entender como trabalhar com junções em várias condições, é melhor trabalhar com um exemplo.

Para esta demonstração, usamos o banco de dados Sakila que foi desenvolvido para explorar todos os recursos do SQL.

Suponha que queremos buscar os dados das tabelas film e film_actor. Primeiro, queremos encontrar todos os atores que estrelaram o filme com classificação PG ou PG-13 e com duração entre 90 e 120.

Nesse cenário, precisamos realizar uma junção com várias condições, conforme mostrado a seguir:

SELECT actor.first_name, actor.last_name, film.title, film.release_year, film.rating
DE ator
JOIN film_actor ON actor.actor_id = film_actor.actor_id
JUNTE-SE ao filme ON film_actor.film_id = film.film_id
WHERE film.length BETWEEN 90 E 120
E film.rating IN ( 'PG' , 'PG-13' ) ;


Como você pode ver na consulta anterior, dizemos ao SQL para realizar uma junção entre as tabelas actor e film_actor com base na coluna actor_id. Também realizamos uma junção entre as tabelas film_actor e film usando a coluna film_id. Também garantimos a definição de duas condições usando a cláusula WHERE para filtrar a tabela de resultados com base no ano de lançamento e na duração do filme.

A tabela resultante é a seguinte:


Também podemos especificar as várias condições com base no operador OR, conforme mostrado no exemplo de consulta a seguir:

SELECT film.title, film.rental_rate, category.name
DO filme
JOIN film_category ON film.film_id = film_category.film_id
JUNTE-SE à categoria ON film_category.category_id = category.category_id
WHERE nome da categoria IN ( 'Ação' , 'Comédia' )
E film.rental_rate > 3,00 ;


A tabela resultante é a seguinte:

Conclusão

Este tutorial explorou como trabalhar com junções SQL com base em várias condições usando os operadores AND e OR. Isso fornece uma filtragem de dados mais granular.