⊗pyPmDOGD 123 of 129 menu

Obtendo dados de tabelas relacionadas em Python

Vamos fazer uma consulta que irá buscar todos os usuários junto com suas cidades. Para isso será necessário o comando LEFT JOIN:

Sua sintaxe é a seguinte:

SELECT campos FROM nome_da_tabela LEFT JOIN nome_da_tabela_relacionada ON condição_de_ligação WHERE condição_de_seleção

Vamos analisar as partes individuais da sintaxe deste comando.

Campos

Como a seleção é feita a partir de várias tabelas, selecionar todos os campos com * não funcionará. A seguinte consulta selecionará campos apenas da tabela principal, mas não da tabela relacionada:

SELECT *

Para que os dados sejam selecionados de todas as tabelas, é necessário especificar o nome da tabela antes do *:

SELECT users.*, cities.*

Ou pode-se listar os campos que precisamos especificando o nome da tabela antes deles:

SELECT users.name, cities.name

Estas duas formas têm um problema. A questão é que se os campos nas tabelas tiverem o mesmo nome, no array Python haverá um conflito de nomes e apenas um campo "vencerá", e o segundo não estará presente.

Para resolver o problema, é necessário renomear os nomes em conflito usando o comando as:

SELECT users.name, cities.name as nome_da_cidade

Ligação (JOIN)

Após o comando ON, devemos especificar os campos das duas tabelas pelos quais a ligação é feita. No nosso caso, será o campo id da tabela de cidades e o campo city_id da tabela de usuários:

ON cities.id=users.city_id

Consulta

No final, a consulta que irá buscar os usuários junto com suas cidades ficará da seguinte forma:

SELECT users.name, cities.name as nome_da_cidade FROM users LEFT JOIN cities ON cities.id=users.city_id

Tarefas práticas

Suponha que você tenha uma tabela de produtos e uma tabela de suas categorias. Escreva uma consulta que irá buscar os nomes dos produtos junto com suas categorias.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar