⊗ppPmDOGD 382 of 447 menu

Datu iegūšana no saistītajām tabulām PHP

Veiksim vaicājumu, kas iegūs visus lietotājus kopā ar viņu pilsētām. Šim nolūkam mums būs nepieciešama komanda LEFT JOIN:

Tās sintakse izskatās šādi:

SELECT lauki FROM tabulas_nosaukums LEFT JOIN saistītās_tabulas_nosaukums ON savienojuma_nosacījums WHERE atlases_nosacījums

Analizēsim atsevišķas šīs komandas sintakses daļas.

Lauki

Tā kā atlase notiek no vairākām tabulām, tad visu lauku atlase, izmantojot *, nedarbosies. Šāds vaicājums atlasīs laukus tikai no galvenās tabulas, bet ne no saistītās:

SELECT *

Lai dati tiktu atlasīti no visām tabulām, pirms * jānorāda tabulas nosaukums atlasei:

SELECT users.*, cities.*

Vai arī var uzskaitīt mums nepieciešamos laukus, norādot tabulas nosaukumu pirms tiem:

SELECT users.name, cities.name

Šīm divām metodēm ir problēma. Tas ir tāpēc, ka, ja lauki tabulās ir ar vienādiem nosaukumiem, tad PHP masīvā notiks nosaukumu konflikts, un uzvarēs tikai viens lauks, bet otrā nebūs.

Lai atrisinātu problēmu, konfliktējošos nosaukumus jāpārsauc, izmantojot komandu as:

SELECT users.name, cities.name as city_name

Saite

Pēc komandas ON mums jānorāda lauki no divām tabulām, pēc kuriem tiek veikta saite. Mūsu gadījumā tas būs lauks id no pilsētu tabulas un lauks city_id no lietotāju tabulas:

ON cities.id=users.city_id

Vaicājums

Rezultātā vaicājums, kas iegūs lietotājus kopā ar viņu pilsētām, izskatīsies šādi:

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

Praktiskie uzdevumi

Pieņemsim, ka jums ir tabula ar precēm un tabula ar to kategorijām. Uzrakstiet vaicājumu, kas iegūs preču nosaukumus kopā ar to kategorijām.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt