Você pode usar instruções SQL JOIN para combinar dados de três ou mais tabelas. O SQL JOIN é extremamente flexível e sua funcionalidade poderosa pode ser usada para combinar dados de várias tabelas. Vamos dar uma olhada nas instruções SQL que permitem combinar resultados de três tabelas diferentes usando uma junção interna.
Exemplo de junção interna
Por exemplo, use tabelas que contenham drivers em uma tabela e correspondências de veículos na segunda. A junção interna ocorre quando o veículo e o motorista estão localizados na mesma cidade. A junção interna seleciona todas as linhas de ambas as tabelas que contêm uma correspondência entre as colunas de localização.
A instrução SQL abaixo combina os dados das tabelas Drivers e Veículos nos casos em que o motorista e o veículo estão localizados na mesma cidade:
SELECT lastname, firstname, tag FROM drivers, veículos WHERE drivers.location = vehicles.location
Essa consulta produz os seguintes resultados:
lastname firstname tag -------- --------- --- Baker Roland H122JM Smythe Michael D824HA Smythe Michael P091YF Jacobs Abraão J291QR Jacobs Abraham L990MT
Agora, estenda este exemplo para incluir uma terceira tabela. Imagine que você queria incluir apenas motoristas e veículos presentes em locais que estão abertos no fim de semana. Você poderia trazer uma terceira tabela para sua consulta estendendo a instrução JOIN da seguinte maneira:
SELECT lastname, firstname, tag, open_weekends FROM drivers, veículos, localizações WHERE drivers.location = vehicles.location AND veículos.location = locations.location AND locations.open_weekends = 'Sim'
lastname firstname tag open_weekends -------- --------- --- ------------- Padeiro Roland H122JM sim Jacobs Abraham J291QR sim Jacobs Abraham L990MT sim
Essa poderosa extensão da instrução básica SQL JOIN permite combinar dados de maneira complexa. Além de combinar tabelas com uma junção interna, você também pode usar essa técnica para combinar várias tabelas usando uma junção externa. As junções externas incluem resultados que existem em uma tabela, mas não têm uma correspondência correspondente na tabela unida.