⊗ppPmDOGD 382 of 447 menu

Data-ontsluiting uit verwante tabelle in PHP

Laat ons 'n navraag maak wat alle gebruikers saam met hul stede sal haal. Vir dit benodig ons die LEFT JOIN opdrag:

Die sintaksis daarvan lyk soos volg:

SELECT velde FROM tabelnaam LEFT JOIN verwante_tabelnaam ON skakelvoorwaarde WHERE keuringsvoorwaarde

Laat ons die individuele dele van hierdie opdrag se sintaksis ontleed.

Velde

Aangesien die keuring uit verskeie tabelle kom, sal die keuring van alle velde deur * nie werk nie. Die volgende navraag sal slegs velde kies uit die hoof tabel, maar nie uit die verwante tabel nie:

SELECT *

Om te verseker dat data uit alle tabelle gekies word, moet die tabelnaam vir die keuring voor * gespesifiseer word:

SELECT users.*, cities.*

Alternatiewelik kan jy die benodigde velde opsom met die tabelnaam voor hulle:

SELECT users.name, cities.name

Hierdie twee metodes het 'n probleem. Die saak is, indien die velde in die tabelle dieselfde name het, sal daar 'n naamkonflik in die PHP-array wees en sal slegs een veld wen, en die tweede een sal nie daar wees nie.

Om die probleem op te los, moet die konflikterende name hernoem word deur die as opdrag:

SELECT users.name, cities.name as city_name

Skakel

Na die ON opdrag moet ons die velde uit die twee tabelle spesifiseer waarvolgens die skakel plaasvind. In ons geval sal dit die veld id uit die tabel met stede en die veld city_id uit die tabel met gebruikers wees:

ON cities.id=users.city_id

Navraag

Uiteindelik sal die navraag wat gebruikers saam met hul stede sal haal soos volg lyk:

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

Praktiese take

Gestel jy het 'n tabel met produkte en 'n tabel met hul kategorieë. Skryf 'n navraag wat die name van die produkte saam met hul kategorieë sal haal.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp