⊗pyPmDOFR 126 of 129 menu

Hubungan Kekeluargaan Data dalam Python

Katakan kita mempunyai tugas untuk menyimpan bapa dan anak lelaki. Katakan setiap bapa hanya boleh mempunyai seorang anak lelaki, dan anak lelaki itu pula juga boleh mempunyai seorang anak lelaki.

Kita perlu memikirkan cara untuk menyimpan data. Idea pertama yang mungkin terlintas di fikiran ialah membuat dua jadual: parents untuk bapa dan sons untuk anak lelaki. Kemudian menghubungkan jadual-jadual ini dengan beberapa medan: son_id atau parent_id.

Walau bagaimanapun, ini bukan idea yang sangat baik - kerana orang yang sama boleh menjadi serentak baik bapa dan anak lelaki - dan kita perlu menyimpannya dalam kedua-dua jadual, dan ini menyusahkan, mengambil lebih banyak ruang dan mudah membawa kepada ralat.

Pilihan yang lebih baik ialah menghubungkan jadual dengan dirinya sendiri: mari buat jadual users, dalamnya kita akan menyimpan semua pengguna dan setiap seorang kita buatkan medan son_id, di mana akan disimpan id anak lelaki dari jadual yang sama:

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

Pertanyaan

Sekarang mari tulis pertanyaan yang akan mengambil pengguna bersama-sama dengan anak lelakinya.

Sebagai permulaan, mari hanya ambil pengguna:

SELECT * FROM users

Sekarang mari join kan kepada pengguna anak-anak lelaki mereka. Kita akan join jadual dengan dirinya sendiri, oleh itu kita perlu melakukan penamaan semula:

LEFT JOIN users as sons

Sekarang kita boleh menentukan hubungan jadual utama dan jadual yang dinamakan semula:

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

Sekarang mari tentukan medan:

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

Mari kumpulkan semuanya dan dapatkan pertanyaan berikut:

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

Tugas Praktikal

Katakan kita mempunyai kategori. Setiap kategori boleh tergolong dalam kategori induk, dan kategori induk itu pula boleh tergolong dalam kategorinya sendiri dan seterusnya. Terangkan struktur penyimpanan.

Tulis pertanyaan yang akan mengambil kategori bersama-sama dengan kategori induknya.

Tulis pertanyaan yang akan mengambil kategori bersama-sama dengan induk dan datuknya.

Tulis pertanyaan yang akan mengambil kategori bersama-sama dengan induk, datuk dan cicitnya.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak