⊗ppPmDOFR 385 of 447 menu

PHP'de Verilerin Aile Bağlantıları

Önümüzde babaları ve oğulları saklama görevinin olduğunu varsayalım. 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 hem baba hem de oğul olabilir - ve onu her iki tabloda 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şkilendirmek: bir users tablosu yapalım, içinde tüm kullanıcıları saklayalım ve her birine, içinde aynı tablodan oğlunun idsinin saklanacağı bir son_id alanı yapalım:

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. Join işlemini tabloyu kendisine yapacağız, bu yüzden onun yeniden adlandırılmasını yapmamı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

Elimizde kategoriler olduğunu varsayalım. Her kategori bir üst kategoriye 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-üst kategorisiyle birlikte getiren bir sorgu yazın.

Bir kategoriyi onun üst kategorisi, üst-üst kategorisi ve üst-üst-ü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