⊗ppPmDOGD 382 of 447 menu

Добивање на податоци од поврзани табели во PHP

Ајде да направиме барање, кое ќе ги земе сите корисници заедно со нивните градови. За ова ние ќе треба командата LEFT JOIN:

Нејзиниот синтаксис изгледа на следниов начин:

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

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

Полиња

Бидејќи селекцијата е од неколку табели, селекцијата на сите полиња преку * нема да работи. Следното барање ќе ги избере полињата само од главната табела, но не и од поврзаната:

SELECT *

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

SELECT users.*, cities.*

Или може да се наведат потребните ни полиња со наведување на името на табелата пред нив:

SELECT users.name, cities.name

Овие два начина имаат проблем. Работата е во тоа, што ако полињата во табелите имаат исти имиња, тогаш во array-то во 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šuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј