⊗pyPmDOGD 123 of 129 menu

Добивање на податоци од поврзани табели во Python

Ајде да направиме барање што ќе ги земе сите корисници заедно со нивните градови. За ова ќе биде потребна командата LEFT JOIN:

Нејзиниот синтаксис изгледа на следниов начин:

SELECT полиња FROM име_на_табела LEFT JOIN име_на_поврзана_табела ON услов_за_поврзување WHERE услов_за_селекција

Ајде да ги разгледаме поединечните делови од синтаксисот на оваа команда.

Полиња

Бидејќи селекцијата се врши од неколку табели, селекцијата на сите полиња преку * нема да работи. Следното барање ќе ги избере полињата само од главната табела, но не и од поврзаната:

SELECT *

За да се изберат податоците од сите табели, потребно е пред * да се наведе името на табелата за селекција:

SELECT users.*, cities.*

Или може да се наведат потребните ни полиња со наведување на името на табелата пред нив:

SELECT users.name, cities.name

Овие два начина имаат проблем. Работи во тоа што ако полињата во табелите имаат исти имиња, тогаш во Python листата ќе дојде до конфликт на имиња и ќе победи само едно поле, а второто нема да постои.

За решавање на проблемот потребно е конфликтните имиња да се преименуваат преку командата 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हिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј