⊗ppPmDOGD 382 of 447 menu

Henting av data fra relaterte tabeller i PHP

La oss lage en spørring som henter alle brukere sammen med deres byer. For å gjøre dette trenger vi LEFT JOIN-kommandoen:

Syntaksen ser slik ut:

SELECT felter FROM tabellnavn LEFT JOIN relatert_tabellnavn ON tilkoblingsbetingelse WHERE utvalgsbetingelse

La oss gå gjennom delene av syntaksen for denne kommandoen.

Felter

Siden utvalget kommer fra flere tabeller, vil ikke utvalg av alle felter via * fungere. Følgende spørring vil kun velge felter fra hovedtabellen, men ikke fra den relaterte tabellen:

SELECT *

For at data skal hentes fra alle tabeller, må du før * spesifisere tabellnavnet for utvalget:

SELECT users.*, cities.*

Alternativt kan du liste opp de nødvendige feltene med tabellnavnet foran dem:

SELECT users.name, cities.name

Disse to metodene har et problem. Saken er at hvis feltene i tabellene har identiske navn, vil det i PHP-arrayet oppstå en navnekonflikt og kun ett felt vil vinne, mens det andre ikke vil være tilstede.

For å løse problemet må du endre de konfliktfylte navnene via as- kommandoen:

SELECT users.name, cities.name as city_name

Tilkobling

Etter ON- kommandoen må vi spesifisere feltene fra de to tabellene som utgjør tilkoblingen. I vårt tilfelle vil dette være feltet id fra bytabellen og feltet city_id fra brukertabellen:

ON cities.id=users.city_id

Spørring

Til slutt vil spørringen som henter brukere sammen med deres byer se slik ut:

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

Praktiske oppgaver

Anta at du har en tabell med produkter og en tabell med deres kategorier. Skriv en spørring som henter produktnavn sammen med deres kategorier.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis