What is Nested Query ? বাংলা ডাটাবেজ টিউটোরিয়াল
নেস্টেড বলেন অথবা সাব কোয়ারী যে যাই বলুক না কেন শুরুতে এই জিনিসটা নিয়ে চিন্তিত হয়েছেন এমন মানুষের সংখ্যাই বেশি। আর আমিও এর মধ্যেই একজন ছিলাম। বইতে কিংবা ক্লাসে যেভাবে এগুলা ডিরেক্ট এক্সাম্পল দিয়ে দেখানো হয় সেভাবে প্রথমে এটা বুঝে উঠা কঠিনই বটে ! তো দেরী না করে চলুন ঘুরে আসি নেস্টেড কোয়ারীর দেশে !
উপরে একটা সিম্পলের মধ্যে গর্জিয়াস টেবিল আছে কিছু স্টুডেন্টদের। একটা সিম্পল “সিলেক্ট” স্টেটমেন্ট এক্সিকিউট করা হলো যাতে যাদের বয়স ২৪ এর বেশি তাদের ডাটা দেখাবে। তবে প্রশ্ন হলো এই সিলেক্ট স্টেটমেন্ট কি রিটার্ণ করল?
একটা টেবিলই তো রিটার্ন করল তাইনা? টেবিল থেকে টেবিলই রিটার্ন হলো !
অর্থাৎ ইনপুট হিসেবে একটা টেবিল নিচ্ছে আবার ক্যালকুলেশন বা কাজটাজ করে আবার আরেকটা টেবিলই রিটার্ণ করছে !
তো নিচের এক্সাম্পল টা দেখি।
এখন, ধরে নিলাম আমাদের কাল্পনিক ডাটাবেজে স্টুডেন্ট এবং এমপ্লয়িদের তথ্য আছে। ধরে এটাও নিলাম কিছু স্টুডেন্ট আবার এমপ্লয়িও। এখন, উপরের সিলেক্ট স্টেটমেন্টটা খেয়াল করি। এখন যদি এটা বের করতে বলা হয় এমন সব স্টুডেন্টদের তথ্য লাগবে যারা একইসাথে এমপ্লয়ি তখন আরেকটা টেবিলের হেল্প লাগবেই আর সেটা হলো “Student_Emoloyee”.
খেয়াল করে দেখি, where id in এর পর ব্র্যাকেটে আরেকটা কোয়েরী দেয়া হয়েছে। এটাই নেস্টেড কোয়ারী। এই নেস্টেড কোয়ারী “Student_Employee” থেকে সব ডাটা টেবিল আকারে দিবে। এইবার এই নতুন টেবিলের ডাটাগুলো যাবে মাদার কোয়ারীর where clause এর কাছে। সে এইবার চেক করবে “Student” টেবিল আর এই নেস্টেড কোয়ারী থেকে আসা id গুলো ম্যাচ করছে কিনা !
যেগুলা ম্যাচ করল সেগুলাই দেখালো।
তো এটাই ছিল সিম্পল নেস্টেড কোয়ারী এক্সাম্পল। প্রশ্ন হলো কেন এটা দরকার হয়?
ধরুন, আপনি রিলেশনাল ডাটাবেজ ডিজাইন করেছেন। ভিন্ন টেবিলের মধ্যে সম্পর্ক আছে । এখন এই এক্সাম্পলের মতো দুই বা ততোধিক টেবিলের সমন্বয়ে কোন ডাটা ফেচ করতে চাচ্ছেন।
আবার এটাই প্রশ্ন করতে পারেন জয়েন করলেই তো হয় ! কিন্তু জয়েন দিয়ে সব কাজ হয়না। রিকোয়ারমেন্টের উপর সব নির্ভর করে।
আজ এই পর্যন্তই। আপনার মন্তব্য আমাকে কমেন্টে জানাতে পারেন।
#♥Happy_Reading