⊗ppPmDOGD 382 of 447 menu

Dobijanje podataka iz povezanih tabela u PHP

Hajde da napravimo upit koji će izvući sve korisnike zajedno sa njihovim gradovima. Za ovo će nam trebati komanda LEFT JOIN:

Njen sintaks izgleda na sledeći način:

SELECT polja FROM ime_tabele LEFT JOIN ime_povezane_tabele ON uslov_povezivanja WHERE uslov_izbora

Hajde da analiziramo pojedinačne delove sintakse ove komande.

Polja

Pošto se izbor vrši iz nekoliko tabela, izbor svih polja preko * neće raditi. Sledeći upit će izabrati polja samo iz glavne tabele, ali ne i iz povezane:

SELECT *

Da bi se podaci biral iz svih tabela, potrebno je pre * navedite ime tabele za izbor:

SELECT users.*, cities.*

Ili možete navesti potrebna polja sa navedenim imenom tabele ispred njih:

SELECT users.name, cities.name

Ova dva načina imaju problem. Problem je u tome da ako polja u tabelama imaju identična imena, onda će u PHP nizu doći do sukoba imena i samo jedno polje će pobediti, a drugog neće biti.

Za rešavanje problema potrebno je sukobljena imena preimenovati preko komande as:

SELECT users.name, cities.name as city_name

Veza

Posle komande ON moramo navesti polja iz dve tabele, preko kojih se ostvaruje veza. U našem slučaju to će biti polje id iz tabele sa gradovima i polje city_id iz tabele sa korisnicima:

ON cities.id=users.city_id

Upit

Kao rezultat, upit koji će izvući korisnike zajedno sa njihovim gradovima izgledaće na sledeći način:

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

Praktični zadaci

Neka postoji tabela sa proizvodima i tabela sa njihovim kategorijama. Napišite upit koji će izvući nazive proizvoda zajedno sa njihovim kategorijama.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij