⊗ppPmDOGD 382 of 447 menu

Získavanie údajov z prepojených tabuliek v PHP

Urobme požiadavku, ktorá načíta všetkých používateľov spolu s ich mestami. Na to potrebujeme príkaz LEFT JOIN:

Jeho syntax vyzerá nasledovne:

SELECT polia FROM nazov_tabulky LEFT JOIN nazov_prepojenej_tabulky ON podmienka_prepojenia WHERE podmienka_vyberu

Poďme si rozobrať jednotlivé časti syntaxe tohto príkazu.

Polia

Pretože výber ide z viacerých tabuliek, výber všetkých polí pomocou * nebude fungovať. Nasledujúca požiadavka vyberie polia iba z hlavnej tabuľky, ale nie z prepojenej:

SELECT *

Aby sa údaje vyberali zo všetkých tabuliek, je potrebné pred * uviesť názov tabuľky pre výber:

SELECT users.*, cities.*

Alebo je možné vymenovať potrebné polia s uvedením názvu tabuľky pred nimi:

SELECT users.name, cities.name

Tieto dva spôsoby majú problém. Faktom je, že ak polia v tabuľkách majú rovnaké názvy, v poli PHP dôjde ku konfliktu názvov a vyhrá iba jedno pole, a druhého nebude.

Na vyriešenie problému je potrebné konfliktné názvy premenovať pomocou príkazu as:

SELECT users.name, cities.name as city_name

Prepojenie

Po príkaze ON musíme uviesť polia z dvoch tabuliek, podľa ktorých sa uskutočňuje prepojenie. V našom prípade to bude pole id z tabuľky s mestami a pole city_id z tabuľky s používateľmi:

ON cities.id=users.city_id

Požiadavka

Výsledná požiadavka, ktorá načíta používateľov spolu s ich mestami bude vyzerať nasledovne:

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

Praktické úlohy

Predpokladajme, že máte tabuľku s produktami a tabuľku s ich kategóriami. Napíšte požiadavku, ktorá načíta názvy produktov spolu s ich kategóriami.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť