⊗pyPmDOFR 126 of 129 menu

পাইথনে ডেটার আত্মীয়তার সম্পর্ক

ধরুন আমাদের সামনে বাবা এবং ছেলেদের সংরক্ষণের কাজ রয়েছে। ধরুন প্রতিটি বাবার শুধুমাত্র একটি ছেলে থাকতে পারে, এবং ছেলে আবার এরও একটি ছেলে থাকতে পারে।

আমরা কীভাবে ডেটা সংরক্ষণ করব তা ভাবতে হবে। প্রথম ধারণা যা মাথায় আসতে পারে তা হলো দুটি টেবিল তৈরি করা: parents বাবাদের জন্য এবং sons ছেলেদের জন্য। তারপর এই টেবিলগুলোকে কোনও ফিল্ড দিয়ে সংযুক্ত করা: son_id বা parent_id

যাইহোক, এই ধারণাটি খুব ভাল নয় - কারণ একই ব্যক্তি একই সাথে হতে পারেন বাবা এবং ছেলে - এবং তাকে সংরক্ষণ করতে হবে উভয় টেবিলে, যা অসুবিধাজনক, বেশি জায়গা নেয় এবং সহজেই ভুলের দিকে নিয়ে যায়।

আরও ভাল বিকল্প হলো টেবিলটিকে নিজের সাথে সংযুক্ত করা: আসুন একটি users টেবিল তৈরি করি, এতে সমস্ত ব্যবহারকারী সংরক্ষণ করব এবং প্রত্যেকের জন্য একটি son_id ফিল্ড তৈরি করব, যাতে সংরক্ষিত থাকবে এই একই টেবিল থেকে ছেলের id:

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

কোয়েরি

এখন আসুন একটি কোয়েরি লিখি যা ব্যবহারকারীকে তার ছেলেসহ বের করবে।

প্রথমে আসুন শুধু ব্যবহারকারীদের বের করি:

SELECT * FROM users

এখন ব্যবহারকারীদের সাথে তাদের ছেলেদ JOIN করি। আমরা টেবিলটিকে নিজের সাথে JOIN করব, তাই আমাদের এর নাম পরিবর্তন করতে হবে:

LEFT JOIN users as sons

এখন আমরা মূল টেবিল এবং নাম পরিবর্তন করা টেবিলের মধ্যে সম্পর্ক নির্দিষ্ট করতে পারি:

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

এখন ফিল্ডগুলো নির্দিষ্ট করি:

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

এখন সব একত্রিত করি এবং নিম্নলিখিত কোয়েরি পাই:

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

ব্যবহারিক সমস্যা

ধরুন আমাদের কাছে বিভাগ রয়েছে। প্রতিটি বিভাগ একটি মূল বিভাগের অন্তর্ভুক্ত হতে পারে, সেটি আবার তার মূল বিভাগের অন্তর্ভুক্ত হতে পারে এবং এভাবে চলতে থাকে। সংরক্ষণের গঠনটি লিখে দিন।

একটি কোয়েরি লিখুন যা বিভাগটিকে এর মূল বিভাগসহ বের করবে।

একটি কোয়েরি লিখুন যা বিভাগটিকে এর মূল এবং মূলের মূল বিভাগসহ বের করবে।

একটি কোয়েরি লিখুন যা বিভাগটিকে এর মূল, মূলের মূল এবং মূলের মূলের মূল বিভাগসহ বের করবে।

বাংলা
AfrikaansAzərbaycanБългарскиБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
আমরা সাইট পরিচালনা, বিশ্লেষণ এবং ব্যক্তিগতকরণের জন্য কুকি ব্যবহার করি। ডেটা প্রক্রিয়াকরণ গোপনীয়তা নীতি অনুযায়ী করা হয়।
সব গ্রহণ করুন কনফিগার করুন প্রত্যাখ্যান করুন