Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј