Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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