ایس کیو ایل میں تین ٹیبلز میں شامل ہوں۔

Ays Kyw Ayl My Tyn Yblz My Shaml W



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

جب شمولیت کی بات آتی ہے تو ہم میں سے زیادہ تر لوگ بنیادی طور پر دو میزوں اور اس طرح کی حد کے ساتھ کام کرتے ہیں۔ تاہم، زیادہ بامعنی ڈیٹا لے آؤٹ اور بصیرت حاصل کرنے کے لیے تین جدولوں میں شامل ہونے کی ضرورت عام ہے۔ مثال کے طور پر لیں جہاں آپ فلموں کی فہرست، ان کے متعلقہ رینٹل انوینٹری، اور اصل کرایے کی تفصیلات حاصل کرنا چاہتے ہیں۔ ان یونٹوں میں سے ہر ایک جیسے فلمیں، انوینٹری، اور کرایے کی تفصیلات انفرادی جدولوں میں ہیں۔

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







تقاضے:

مظاہرے کے مقاصد کے لیے، ہم MySQL ورژن 80 اور Sakila سیمپل ڈیٹا بیس استعمال کریں گے۔ ساتھ چلنے کے لیے، آپ اپنے MySQL سرور میں Sakila ڈیٹا بیس کو ڈاؤن لوڈ اور سیٹ اپ کر سکتے ہیں۔ کسی بھی دوسرے ڈیٹاسیٹ کو بلا جھجھک استعمال کریں جسے آپ قابل اطلاق سمجھتے ہیں۔



SQL میں شمولیت کی اقسام

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



اندرونی شرکت

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





نحو درج ذیل ہے:

کالم منتخب کریں۔

ٹیبل 1 سے

اندرونی جوائن ٹیبل 2 آن table1.column_name = table2.column_name;

بائیں شمولیت

بائیں شمولیت کی صورت میں، یہ بائیں میز سے تمام قطاریں اور دائیں میز سے مماثل قطاریں لوٹاتا ہے۔ اگر صحیح ٹیبل سے کوئی مماثل اقدار نہیں ہیں، تو جوائن ان کی جگہ NULL قدروں کو جوڑتا ہے۔



نحو درج ذیل ہے:

کالم منتخب کریں۔

ٹیبل 1 سے

بائیں جوائن ٹیبل 2 آن table1.column_name = table2.column_name;

رائٹ جوائن

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

رائٹ جوائن کا نحو درج ذیل ہے:

کالم منتخب کریں۔

ٹیبل 1 سے

رائٹ جوائن ٹیبل 2 آن table1.column_name = table2.column_name;

مکمل بیرونی شمولیت

جوائن کی اگلی قسم جس کا آپ SQL ڈیٹا بیس میں سامنا کریں گے وہ ایک مکمل بیرونی شمولیت ہے۔ اس قسم کا جوائن تمام قطاروں کو لوٹاتا ہے جب دائیں یا بائیں ٹیبلز میں میچ ہوتا ہے۔ اگر دونوں میں سے کسی ایک میں کوئی مماثل قدر نہیں ہے، تو یہ میز سے کالموں کے لیے بغیر میچ کے NULL لوٹاتا ہے۔

مندرجہ ذیل ایک مکمل بیرونی شمولیت کے نحو کو ظاہر کرتا ہے:

کالم منتخب کریں۔

ٹیبل 1 سے

مکمل باہر جوائن ٹیبل 2 آن table1.column_name = table2.column_name;

یہ ذہن میں رکھنا اچھا ہے کہ تمام ڈیٹا بیس انجن مکمل بیرونی جوائن کو سپورٹ نہیں کرتے ہیں۔ اس کو حاصل کرنے کے لیے، آپ کو دیگر قسم کے JOINS یا ذیلی سوالات کے ساتھ کام کرنے کی ضرورت پڑ سکتی ہے۔

مثالیں:

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

مثال 1: اندرونی شمولیت کا استعمال

ہم ایک اندرونی شمولیت کے ساتھ شروع کرتے ہیں۔ فرض کریں کہ ہم فلموں کی فہرست، رینٹل انوینٹری، اور متعلقہ رینٹل کی تفصیلات حاصل کرنا چاہتے ہیں۔

ہم منسلک جدولوں پر ایک سے زیادہ INNER JOINS استعمال کر سکتے ہیں جیسا کہ درج ذیل مثال میں دکھایا گیا ہے۔

منتخب کریں۔

فلم کا عنوان،

inventory.inventory_id،

rental.rental_date

سے

فلم

اندرونی شمولیت انوینٹری آن

film.film_id = inventory.film_id

اندرونی جوائن کرایہ پر لینا آن

inventory.inventory_id = rental.inventory_id;

دی گئی مثال کے استفسار میں، ہم 'film_id' کالم پر مبنی فلم اور انوینٹری ٹیبلز میں شامل ہو کر شروعات کرتے ہیں۔ اس کے بعد ہم نتیجہ سیٹ لیتے ہیں اور اسے 'inventory_id' کالم کی بنیاد پر رینٹل ٹیبل کے ساتھ شامل کرتے ہیں۔

یہ یقینی بناتا ہے کہ ہم بنیادی اندرونی شمولیت کے ساتھ تین جدولوں میں شامل ہوں۔ نتیجہ سیٹ مندرجہ ذیل ہے:

مثال 2: اندرونی جوڑ اور بائیں شمولیت کا استعمال

ہم کہتے ہیں کہ اب ہم فلموں کی فہرست، کرایے کی فہرست (اگر کوئی ہے تو) اور متعلقہ رینٹل کی تفصیلات چاہتے ہیں۔

ہم اس بات کو بھی یقینی بنانا چاہتے ہیں کہ اگر کسی فلم میں رینٹل انوینٹری نہ ہو تب بھی ہم اسے نتیجہ میں شامل کرتے ہیں۔ یہ وہ جگہ ہے جہاں اندرونی شمولیت اور بائیں شمولیت کھیل میں آتی ہے۔

مندرجہ ذیل مثال پر غور کریں:

منتخب کریں۔

فلم کا عنوان،

inventory.inventory_id،

rental.rental_date

سے

فلم

اندرونی شمولیت کی انوینٹری آن

film.film_id = inventory.film_id

لیفٹ جوائن رینٹل آن

inventory.inventory_id = rental.inventory_id;

اس مثال میں، ہم فلم اور انوینٹری ٹیبل میں شامل ہونے کے لیے ایک INNER JOIN استعمال کرتے ہیں تاکہ یہ یقینی بنایا جا سکے کہ ہمیں دستیاب انوینٹری کے ساتھ ٹائٹلز مل جائیں۔ اس کے بعد ہم رینٹل ٹیبل میں شامل ہونے کے لیے لیفٹ جوائن کا استعمال کرتے ہیں اگر دستیاب ہو تو رینٹل کی تفصیلات حاصل کریں اور کسی ایسے عنوان کے لیے NULL جس کی رینٹل ہسٹری نہیں ہے۔

نتیجہ سیٹ مندرجہ ذیل ہے:

نتیجہ

اس ٹیوٹوریل میں، ہم نے SQL میں JOINS کی مختلف اقسام کے بارے میں سیکھا، وہ کیسے کام کرتے ہیں، اور ہم انہیں تین ٹیبلز کو یکجا کرنے کے لیے کیسے استعمال کر سکتے ہیں۔