⊗pyPmDOGD 123 of 129 menu

Dataverkryging uit verwante tabelle in Python

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

Die sintaksis daarvan lyk soos volg:

SELECT velde FROM tabelnaam LEFT JOIN verwante_tabelnaam ON skakelvoorwaarde WHERE keurvoorwaarde

Kom ons kyk na die afsonderlike dele van die sintaksis van hierdie opdrag.

Velde

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

SELECT *

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

SELECT users.*, cities.*

Of, jy kan die nodige velde lys met die tabelnaam voor hulle:

SELECT users.name, cities.name

Hierdie twee metodes het 'n probleem. Die ding is, as velde in tabelle identiese name het, sal daar in die Python lys 'n naamkonflik wees en sal slegs een veld wen, en die ander een sal nie daar wees nie.

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

SELECT users.name, cities.name as city_name

Skakel

Na die opdrag ON moet ons velde uit die twee tabelle spesifiseer, waarlangs 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 die gebruikers saam met hul stede sal haal so lyk:

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

Praktiese take

Kom ons sê jy het 'n tabel met produkte en 'n tabel met hul kategorieë. Skryf 'n navraag, wat die name van 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