⊗pyPmDOFR 126 of 129 menu

Python'da Verilerin Aile İlişkileri

Diyelim ki babaları ve oğulları saklama göreviyle karşı karşıyayız. Her babanın sadece bir oğlu olabilsin ve oğul da sırayla bir oğula sahip olabilsin.

Verileri nasıl saklayacağımızı düşünmemiz gerekiyor. Akla gelebilecek ilk fikir - iki tablo yapmak: babalar için parents ve oğullar için sons. Sonra bu tabloları bir alanla ilişkilendirmek: son_id veya parent_id.

Ancak, bu çok iyi bir fikir değil - çünkü aynı kişi aynı zamanda hem baba hem de oğul olabilir - ve onu her iki tabloda da saklamak zorunda kalırız, bu da kullanışsızdır, daha fazla yer kaplar ve kolayca hatalara yol açar.

Daha iyi bir seçenek - tabloyu kendisiyle ilişkilendirmektir: bir users tablosu yapalım, içinde tüm kullanıcıları saklayalım ve her birine son_id alanı verelim, bu alanda aynı tablodan oğlunun id'si saklansın:

users
id name son_id
1 user1 2
2 user2 3
3 user3 null

Sorgular

Şimdi bir kullanıcıyı onun oğluyla birlikte getiren bir sorgu yazalım.

Öncelikle sadece kullanıcıları getirelim:

SELECT * FROM users

Şimdi kullanıcılara onların oğullarını join edelim. Tabloyu kendisine join edeceğiz, bu nedenle onu yeniden adlandırmamız gerekiyor:

LEFT JOIN users as sons

Şimdi ana tablo ile yeniden adlandırılmış tablo arasındaki ilişkiyi belirtebiliriz:

LEFT JOIN users as sons ON sons.id=users.son_id

Şimdi alanları belirtelim:

SELECT users.name as user_name, sons.name as son_name

Hepsini bir araya getirelim ve aşağıdaki sorguyu elde edelim:

SELECT users.name as user_name, sons.name as son_name FROM users LEFT JOIN users as sons ON sons.id=users.son_id

Pratik Görevler

Diyelim ki kategorilerimiz var. Her kategori bir üst kategorisine ait olabilir, o da sırayla kendi üst kategorisine ait olabilir ve bu böyle devam eder. Saklama yapısını açıklayın.

Bir kategoriyi onun üst kategorisiyle birlikte getiren bir sorgu yazın.

Bir kategoriyi onun üst kategorisi ve üstünün üst kategorisiyle birlikte getiren bir sorgu yazın.

Bir kategoriyi onun üst kategorisi, üstünün üst kategorisi ve üstünün üstünün üst kategorisiyle birlikte getiren bir sorgu yazın.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet