⊗ppPmDOGD 382 of 447 menu

Hent data fra relaterede tabeller i PHP

Lad os lave en forespørgsel, der henter alle brugere sammen med deres byer. Til dette har vi brug for kommandoen LEFT JOIN:

Dens syntaks ser ud som følger:

SELECT felter FROM tabel_navn LEFT JOIN relateret_tabel_navn ON betingelse_for_relation WHERE betingelse_for_udvælgelse

Lad os gennemgå de enkelte dele af syntaksen for denne kommando.

Felter

Da der vælges data fra flere tabeller, vil udvælgelse af alle felter via * ikke virke. Følgende forespørgsel vil kun vælge felter fra hovedtabellen, men ikke fra den relaterede tabel:

SELECT *

For at data skal hentes fra alle tabeller, skal du før * angive navnet på tabellen, der skal hentes fra:

SELECT users.*, cities.*

Alternativt kan du liste de felter, vi har brug for, med angivelse af tabelnavn foran dem:

SELECT users.name, cities.name

Disse to metoder har et problem. Kort fortalt, hvis felter i tabellerne har identiske navne, vil der i PHP-arrayet opstå en navnekonflikt, og kun ét felt vil "vinde", og det andet vil ikke være til stede.

For at løse problemet skal de konfliktfyldte navne omdøbes via kommandoen as:

SELECT users.name, cities.name as city_name

Relation

Efter kommandoen ON skal vi angive felter fra de to tabeller, som relationen skabes imellem. I vores tilfælde vil det være feltet id fra by-tabellen og feltet city_id fra bruger-tabellen:

ON cities.id=users.city_id

Forespørgsel

I sidste ende vil forespørgslen, der henter brugerne sammen med deres byer, se ud som følger:

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

Praktiske opgaver

Antag, at du har en tabel med varer og en tabel med deres kategorier. Skriv en forespørgsel, der henter varenavnene sammen med deres kategorier.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis