ایس کیو ایل سیلف جوائن

Ays Kyw Ayl Sylf Jwayn



رشتہ دار ڈیٹا بیس کی سب سے مشہور خصوصیت میں شامل ہونا ہے۔ جوائنز رشتہ دار ڈیٹا بیس کی سب سے طاقتور اور پیچیدہ خصوصیات میں سے ایک ہیں۔ وہ کارکردگی پر سمجھوتہ کیے بغیر ڈیٹا بیس ٹیبلز کے درمیان وسیع ماڈیولریٹی اور انتہائی پیچیدہ تعلقات کی اجازت دیتے ہیں۔

تاہم، ایس کیو ایل میں شمولیت کی ایک قسم ہے جو ریڈار کے نیچے جاتی ہے جسے سیلف جوائن کے نام سے جانا جاتا ہے۔

ایس کیو ایل میں، سیلف جوائن ایک طاقتور تکنیک ہے جو ہمیں ایک ہی ٹیبل کے متعلقہ کالم کی بنیاد پر ایک ہی ٹیبل سے قطاروں کو یکجا کرنے کی اجازت دیتی ہے۔







ایس کیو ایل میں دیگر قسم کے جوائنز کے برعکس جہاں ہم متعدد ٹیبلز سے ڈیٹا لیتے ہیں، ایک سیلف جوائن ایک ہی ٹیبل پر کام کرتا ہے۔



آپ سوچ سکتے ہیں کہ جب میں خود ٹیبل سے ڈیٹا تلاش کر سکتا ہوں تو مجھے خود شمولیت کی ضرورت کیوں ہے؟ اگرچہ یہ سچ ہو سکتا ہے، جب آپ کو بار بار ڈیٹا کے سوالات کرنے یا درجہ بندی کے اعداد و شمار کو تلاش کرنے کی ضرورت ہو تو خود شمولیت کاموں میں مدد کر سکتی ہے۔



بنیادی طور پر، خود شامل ہونا ایک بنیادی کردار ادا کرتا ہے جہاں آپ کو ایک ہی ٹیبل کی قطاروں کا موازنہ کرنے کی ضرورت ہوتی ہے۔





اس پوسٹ میں ہمارے ساتھ شامل ہوں کیونکہ ہم دریافت کرتے ہیں کہ سیلف جوائن کیا ہے، وہ کیسے کام کرتے ہیں، اور ہم انہیں SQL ٹیبل میں کیسے استعمال کر سکتے ہیں۔

نوٹ: اس میں غوطہ لگانے سے پہلے، ہم مظاہرے کے مقاصد کے لیے ایک بنیادی جدول ترتیب دیں گے۔ تاہم، آپ محسوس کرتے ہیں کہ کوئی بھی معاون ڈیٹاسیٹ استعمال کریں۔



نمونہ ڈیٹا

مندرجہ ذیل سوالات ایک بنیادی جدول بناتے ہیں جس میں پروڈکٹ کی معلومات ہوتی ہیں اور نمونے کے ریکارڈز کو جدول میں داخل کیا جاتا ہے۔ یہ ہمیں یہ ظاہر کرنے کی اجازت دیتا ہے کہ ایس کیو ایل میں سیلف جوائنز کے ساتھ کیسے کام کیا جائے۔

ٹیبل پروڈکٹس بنائیں (
پروڈکٹ_آئی ڈی بنیادی کلید،
پروڈکٹ_نام VARCHAR(255) NOT NULL،
parent_id INT
);

ٹیبل میں 10 نمونے کے ریکارڈ شامل کریں۔

مصنوعات میں داخل کریں (product_id، product_name، parent_id) VALUES
(1، 'الیکٹرانکس'، NULL)،
(2، 'اسمارٹ فونز'، 1)
(3، 'لیپ ٹاپ'، 1)،
(4، 'آئی فون 13'، 2)،
(5، 'Samsung Galaxy S21', 2)
(6، 'میک بک پرو'، 3)،
(7، 'ڈیل ایکس پی ایس 15'، 3)،
(8، 'لوازمات'، NULL)،
(9، 'فون کیسز'، 8)
(10، 'لیپ ٹاپ بیگ'، 8)؛

نتیجہ کی میز مندرجہ ذیل ہے:

مثال 1: بنیادی سیلف جوائن

آئیے ایک بنیادی خود شمولیت کے ساتھ شروع کریں۔ مثال کے طور پر، ہم ایک ہی ٹیبل کے والدین اور بچے کے تعلقات کو بازیافت کرنے کے لیے ایک سادہ سیلف جوائن کا استعمال کر سکتے ہیں۔

مثال کے طور پر، ہم اسے تمام پروڈکٹس اور ان کے متعلقہ پیرنٹ پروڈکٹس کو تلاش کرنے کے لیے استعمال کر سکتے ہیں۔ ہم مندرجہ ذیل کے طور پر ایک سوال چلا سکتے ہیں:

c.product_name AS child_product، p.product_name AS parent_product منتخب کریں
مصنوعات سے c
بائیں جوائن پروڈکٹس p ON c.parent_id = p.product_id;

دی گئی مثال کے استفسار میں، ہم پروڈکٹ ٹیبل کے لیے ایک عرف کے طور پر 'c' استعمال کرتے ہیں جو بچوں کی مصنوعات کی نمائندگی کرتا ہے۔

ہم بنیادی مصنوعات کی نمائندگی کرنے کے لیے پروڈکٹ ٹیبل کے لیے 'p' عرف بھی بناتے ہیں۔

اگلے مرحلے میں، ہم اس بات کو یقینی بنانے کے لیے ایک بنیادی SQL لیفٹ جوائن کا استعمال کرتے ہیں کہ نتیجہ میں اعلیٰ درجے کی مصنوعات شامل ہوں۔

آخر میں، ہم 'parent_id' اور 'product_id' کالمز کا استعمال کرتے ہوئے بچے اور والدین کے ریکارڈ کے درمیان تعلق پیدا کرنے کے لیے ON شق کا استعمال کرتے ہیں۔

نتیجہ کی میز مندرجہ ذیل ہے:

آپ دیکھیں گے کہ پیرنٹ پروڈکٹس میں ٹاپ لنک نہیں ہوتا ہے کیونکہ وہ درجہ بندی کے سب سے اوپر ہوتے ہیں جنہیں جڑ عناصر کے نام سے بھی جانا جاتا ہے۔

مثال 2: درجہ بندی کا ڈیٹا حاصل کریں۔

خود شمولیت کے سب سے بنیادی کرداروں میں سے ایک درجہ بندی کے اعداد و شمار کو بازیافت کرنا ہے۔ مثال کے طور پر، فرض کریں کہ ہم تمام چائلڈ پروڈکٹس کو بازیافت کرنا چاہتے ہیں جہاں پروڈکٹ 'اسسریز' کے برابر ہو۔ ہم مندرجہ ذیل طور پر سیلف جوائن کا استعمال کرکے استفسار چلا سکتے ہیں:

c.product_name AS child_product کو منتخب کریں۔
مصنوعات سے c
پروڈکٹس میں شامل ہوں c.parent_id = p.product_id
WHERE p.product_name = 'لوازمات';

اس صورت میں، ہم پروڈکٹ ٹیبل کو اپنے ساتھ جوڑنے کے لیے JOIN کا استعمال کرتے ہیں اور پھر WHERE شق کا استعمال کرتے ہوئے ان نتائج کو فلٹر کرتے ہیں جو ہم چاہتے ہیں۔

نتیجہ

اس ٹیوٹوریل میں، ہم نے دریافت کیا کہ سیلف جوائن کیا ہے، یہ کیسے کام کرتا ہے، اور ہم اسے کس طرح ایس کیو ایل ٹیبل میں درجہ بندی کے اعداد و شمار کو بازیافت کرنے یا تکراری سوالات کو انجام دینے کے لیے استعمال کر سکتے ہیں۔