⊗pyPmDOGD 123 of 129 menu

Տվյալների ստացում կապված աղյուսակներից Python-ում

Եկեք կատարենք հարցում, որը կբերի բոլոր օգտատերերին իրենց քաղաքների հետ միասին: Դրա համար անհրաժեշտ կլինի LEFT JOIN հրամանը:

Դրա շարահյուսությունը հետևյալն է.

SELECT դաշտեր FROM աղյուսակի_անունը LEFT JOIN կապված_աղյուսակի_անունը ON կապի_պայմանը WHERE ընտրության_պայմանը

Եկեք վերլուծենք այս հրամանի շարահյուսության առանձին մասերը:

Դաշտեր

Քանի որ ընտրությունը կատարվում է մի քանի աղյուսակներից, ապա բոլոր դաշտերի ընտրությունը *-ի միջոցով չի աշխատի: Հետևյալ հարցումը կընտրի դաշտերը միայն հիմնական աղյուսակից, բայց ոչ կապված աղյուսակից:

SELECT *

Որպեսզի տվյալները ընտրվեն բոլոր աղյուսակներից, անհրաժեշտ է *-ից առաջ նշել աղյուսակի անունը ընտրության համար:

SELECT users.*, cities.*

Կամ կարելի է թվարկել մեզ անհրաժեշտ դաշտերը՝ դրանց դիմաց նշելով աղյուսակի անունը:

SELECT users.name, cities.name

Այս երկու եղանակներն ունեն խնդիր: Բանը նրանում է, որ եթե աղյուսակների դաշտերն ունեն նույն անունները, ապա Python-ի զանգվածում տեղի կունենա անունների կոնֆլիկտ և հաղթելու է միայն mեկ դաշտ, իսկ երկրորդը չի լինի:

Խնդիրը լուծելու համար անհրաժեշտ է կոնֆլիկտային անունները վերանվանել as հրամանի միջոցով:

SELECT users.name, cities.name as city_name

Կապ

ON հրամանից հետո մենք պետք է նշենք երկու աղյուսակների այն դաշտերը, որոնց միջոցով իրականացվում է կապը: Մեր դեպքում դա կլինի id դաշտը քաղաքների աղյուսակից և city_id դաշտը օգտատերերի աղյուսակից:

ON cities.id=users.city_id

Հարցում

Ի վերջո, հարցումը, որը կբերի օգտատերերին նրանց քաղաքների հետ միասին կունենա հետևյալ տեսքը:

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

Գործնական առաջադրանքներ

Ենթադրենք ունեք ապրանքների աղյուսակ և դրանց կատեգորիաների աղյուսակ: Գրեք հարցում, որը կբերի ապրանքների անունները նրանց կատեգորիաների հետ միասին:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել