⊗ppPmDOGD 382 of 447 menu

Obtenção de dados de tabelas relacionadas em PHP

Vamos fazer uma consulta que irá buscar todos os usuários junto com suas cidades. Para isso precisaremos do 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 através de * 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 de * para a seleção:

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. O fato é que, se os campos nas tabelas tiverem os mesmos nomes, ocorrerá um conflito de nomes no array PHP e apenas um campo prevalecerá, 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 city_name

Ligação

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 city_name 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 busque 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