⊗ppPmDOGD 382 of 447 menu

Добијање података из повезаних табела у PHP

Хајде да направимо упит који ће извући све кориснике заједно са њиховим градовима. За ово нам је потребна команда LEFT JOIN:

Њен синтакса изгледа на следећи начин:

SELECT поља FROM име_табеле LEFT JOIN име_повезане_табеле ON услов_повезивања WHERE услов_селекције

Хајде да размотримо појединачне делове синтаксе ове команде.

Поља

Пошто селекција иде из више табела, селекција свих поља кроз * неће радити. Следећи упит ће изабрати поља само из главне табеле, али не и из повезане:

SELECT *

Да би подаци били изабрани из свих табела, потребно је да пред * наведемо име табеле за селекцију:

SELECT users.*, cities.*

Или можемо набројати поља која су нам потребна са навођењем имена табеле пре њих:

SELECT users.name, cities.name

Ова два начина имају проблем. Ствар је у томе, да ако поља у табелама имају иста имена, у низу у PHP-у ће доћи до конфликта имена и победиће само једно поље, а другог неће бити.

За решавање проблема потребно је конфликтна имена преименовати кроз команду as:

SELECT users.name, cities.name as city_name

Повезивање

После команде ON морамо навести поља из две табеле, по којима се остварује веза. У нашем случају то ће бити поље id из табеле са градовима и поље city_id из табеле са корисницима:

ON cities.id=users.city_id

Упит

На крају упит, који ће извући кориснике заједно са њиховим градовима изгледаће на следећи начин:

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

Практични задаци

Нека постоји табела са производима и табела са њиховим категоријама. Напишите упит који ће извући називе производа заједно са њиховим категоријама.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј