MySQL ڈیٹا بیس اندرونی جوائن ملٹی ٹیبل استعمال؟ بائیں بائیں شمولیت کے استعمال کی کارکردگی

MySQL ڈیٹا بیساندرونی جوائن ملٹی ٹیبل استعمال؟ بائیں بائیں شمولیت کے استعمال کی کارکردگی

مسسل کنکشن کا استعمال

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

اس باب میں ہم آپ کو دکھائیں گے کہ MySQL کے JOIN کو دو یا زیادہ جدولوں میں ڈیٹا کے استفسار کے لیے کیسے استعمال کیا جائے۔

آپ ملٹی ٹیبل سوالات میں شامل ہونے کے لیے Mysql کے JOIN کو SELECT، UPDATE اور DELETE بیانات میں استعمال کر سکتے ہیں۔

JOIN کو اس کے فنکشن کے مطابق تقریباً درج ذیل تین زمروں میں تقسیم کیا گیا ہے۔

  • اندرونی شمولیت (اندرونی شمولیت، یا ایکویجوئن): دو جدولوں میں مماثل فیلڈز کے ساتھ ریکارڈ حاصل کریں۔
  • بائیں شمولیت (بائیں شمولیت):تمام ریکارڈز بائیں ٹیبل میں حاصل کریں، چاہے دائیں ٹیبل میں کوئی مماثل ریکارڈ نہ ہوں۔
  • رائٹ جوائن (دائیں شمولیت): LEFT JOIN کے برعکس، یہ دائیں ٹیبل میں تمام ریکارڈ حاصل کرنے کے لیے استعمال ہوتا ہے، یہاں تک کہ اگر بائیں ٹیبل میں کوئی متعلقہ مماثل ریکارڈ نہ ہوں۔

کمانڈ پرامپٹ میں اندرونی شمولیت کا استعمال

ہمارے پاس chenweiliang ڈیٹا بیس میں tcount_tbl اور chenweiliang_tbl دو میزیں ہیں۔دونوں ڈیٹا ٹیبلز کا ڈیٹا درج ذیل ہے۔

مثال

درج ذیل مثالیں آزمائیں:

ٹیسٹ مثال کے اعداد و شمار

mysql> use chenweiliang;
Database changed
mysql> SELECT * FROM tcount_tbl;
+---------------+--------------+
| chenweiliang_author | chenweiliang_count |
+---------------+--------------+
| 陈沩亮博客 | 10 |
| chenweiliang.com | 20 |
| Google | 22 |
+---------------+--------------+
3 rows in set (0.01 sec)
 
mysql> SELECT * from chenweiliang_tbl;
+-----------+---------------+---------------+-----------------+
| chenweiliang_id | chenweiliang_title | chenweiliang_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 1 | 学习 PHP | 陈沩亮博客 | 2017-04-12 |
| 2 | 学习 MySQL | 陈沩亮博客 | 2017-04-12 |
| 3 | 学习 Java | chenweiliang.com | 2015-05-01 |
| 4 | 学习 Python | chenweiliang.com | 2016-03-06 |
| 5 | 学习 C | FK | 2017-04-05 |
+-----------+---------------+---------------+-----------------+
5 rows in set (0.01 sec)

اگلا ہم MySQL استعمال کریں گے۔INNER JOIN (آپ INNER کو بھی چھوڑ سکتے ہیں اور JOIN استعمال کر سکتے ہیں، اثر وہی ہے)tcount_tbl ٹیبل میں chenweiliang_tbl ٹیبل میں موجود تمام chenweiliang_author فیلڈز کے مطابق chenweiliang_count فیلڈ کی قدر کو پڑھنے کے لیے مندرجہ بالا دو جدولوں کو جوڑیں:

اندرونی شرکت

mysql> SELECT a.chenweiliang_id, a.chenweiliang_author, b.chenweiliang_count FROM chenweiliang_tbl a INNER JOIN tcount_tbl b ON a.chenweiliang_author = b.chenweiliang_author;
+-------------+-----------------+----------------+
| a.chenweiliang_id | a.chenweiliang_author | b.chenweiliang_count |
+-------------+-----------------+----------------+
| 1 | 陈沩亮博客 | 10 |
| 2 | 陈沩亮博客 | 10 |
| 3 | chenweiliang.com | 20 |
| 4 | chenweiliang.com | 20 |
+-------------+-----------------+----------------+
4 rows in set (0.00 sec)

مندرجہ بالا SQL بیان اس کے برابر ہے:

جہاں شق

mysql> SELECT a.chenweiliang_id, a.chenweiliang_author, b.chenweiliang_count FROM chenweiliang_tbl a, tcount_tbl b WHERE a.chenweiliang_author = b.chenweiliang_author;
+-------------+-----------------+----------------+
| a.chenweiliang_id | a.chenweiliang_author | b.chenweiliang_count |
+-------------+-----------------+----------------+
| 1 | 陈沩亮博客 | 10 |
| 2 | 陈沩亮博客 | 10 |
| 3 | chenweiliang.com | 20 |
| 4 | chenweiliang.com | 20 |
+-------------+-----------------+----------------+
4 rows in set (0.01 sec)

MySQL بائیں شمولیت

MySQL لیفٹ جوائن جوائن سے مختلف ہے۔ MySQL لیفٹ جوائن بائیں ڈیٹا ٹیبل میں موجود تمام ڈیٹا کو پڑھے گا، چاہے دائیں ٹیبل میں کوئی متعلقہ ڈیٹا نہ ہو۔

مثال

درج ذیل مثالوں کو آزمائیں۔ chenweiliang_tbl بائیں میز کے لئے،tcount_tbl صحیح جدول کے لیے، MySQL لیفٹ جوائن کی درخواست کو سمجھیں:

بائیں شمولیت

mysql> SELECT a.chenweiliang_id, a.chenweiliang_author, b.chenweiliang_count FROM chenweiliang_tbl a LEFT JOIN tcount_tbl b ON a.chenweiliang_author = b.chenweiliang_author;
+-------------+-----------------+----------------+
| a.chenweiliang_id | a.chenweiliang_author | b.chenweiliang_count |
+-------------+-----------------+----------------+
| 1 | 陈沩亮博客 | 10 |
| 2 | 陈沩亮博客 | 10 |
| 3 | chenweiliang.com | 20 |
| 4 | chenweiliang.com | 20 |
| 5 | FK | NULL |
+-------------+-----------------+----------------+
5 rows in set (0.01 sec)

مندرجہ بالا مثال میں، LEFT JOIN استعمال کیا گیا ہے۔ یہ بیان بائیں جانب ڈیٹا ٹیبل chenweiliang_tbl کے تمام منتخب فیلڈ ڈیٹا کو پڑھے گا، چاہے دائیں جانب ٹیبل tcount_tbl میں chenweiliang_author کی کوئی متعلقہ فیلڈ ویلیو نہ ہو۔


MySQL رائٹ جوائن کریں۔

MySQL RIGHT JOIN دائیں طرف کے ڈیٹا ٹیبل میں موجود تمام ڈیٹا کو پڑھے گا، چاہے بائیں جانب ٹیبل میں کوئی متعلقہ ڈیٹا نہ ہو۔

مثال

درج ذیل مثالوں کو آزمائیں۔ chenweiliang_tbl بائیں میز کے لئے،tcount_tbl صحیح جدول کے لیے، MySQL رائٹ جوائن کی درخواست کو سمجھیں:

رائٹ جوائن

mysql> SELECT a.chenweiliang_id, a.chenweiliang_author, b.chenweiliang_count FROM chenweiliang_tbl a RIGHT JOIN tcount_tbl b ON a.chenweiliang_author = b.chenweiliang_author;
+-------------+-----------------+----------------+
| a.chenweiliang_id | a.chenweiliang_author | b.chenweiliang_count |
+-------------+-----------------+----------------+
| 1 | 陈沩亮博客 | 10 |
| 2 | 陈沩亮博客 | 10 |
| 3 | chenweiliang.com | 20 |
| 4 | chenweiliang.com | 20 |
| NULL | NULL | 22 |
+-------------+-----------------+----------------+
5 rows in set (0.01 sec)

اوپر کی مثال میں RIGHT JOIN استعمال کیا گیا ہے، یہ بیان دائیں جانب ڈیٹا ٹیبل tcount_tbl کے تمام منتخب فیلڈ ڈیٹا کو پڑھے گا، چاہے بائیں جانب ٹیبل chenweiliang_tbl میں chenweiliang_author کی کوئی متعلقہ فیلڈ ویلیو نہ ہو۔


پی ایچ پی اسکرپٹ میں جوائن کا استعمال

mysqli_query() فنکشن پی ایچ پی میں ایس کیو ایل اسٹیٹمنٹس کو انجام دینے کے لیے استعمال کیا جاتا ہے، آپ وہی ایس کیو ایل اسٹیٹمنٹ استعمال کرسکتے ہیں جیسا کہ mysqli_query() فنکشن کا پیرامیٹر ہے۔

درج ذیل مثال کو آزمائیں:

MySQL آرڈر بذریعہ ٹیسٹ:

<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
$sql = 'SELECT a.chenweiliang_id, a.chenweiliang_author, b.chenweiliang_count FROM chenweiliang_tbl a INNER JOIN tcount_tbl b ON a.chenweiliang_author = b.chenweiliang_author';
 
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
 die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 MySQL JOIN 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>作者</td><td>登陆次数</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
 echo "<tr><td> {$row['chenweiliang_id']}</td> ".
 "<td>{$row['chenweiliang_author']} </td> ".
 "<td>{$row['chenweiliang_count']} </td> ".
 "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

ہوپ چن ویلیانگ بلاگ ( https://www.chenweiliang.com/ ) نے اشتراک کیا "MySQL ڈیٹا بیس اندرونی شمولیت کا ملٹی ٹیبل استعمال؟ بائیں بائیں شمولیت استعمال کی کارکردگی"، یہ آپ کی مدد کرے گا۔

اس مضمون کا لنک شیئر کرنے میں خوش آمدید:https://www.chenweiliang.com/cwl-488.html

تازہ ترین اپ ڈیٹس حاصل کرنے کے لیے چن ویلیانگ کے بلاگ کے ٹیلیگرام چینل میں خوش آمدید!

🔔 چینل ٹاپ ڈائرکٹری میں قیمتی "ChatGPT Content Marketing AI Tool Usage Guide" حاصل کرنے والے پہلے فرد بنیں! 🌟
📚 یہ گائیڈ بہت بڑی قیمت پر مشتمل ہے، 🌟یہ ایک نادر موقع ہے، اس سے محروم نہ ہوں! ⏰⌛💨
پسند آئے تو شیئر اور لائک کریں!
آپ کا اشتراک اور پسندیدگی ہماری مسلسل حوصلہ افزائی ہے!

 

评论 评论

آپ کا ای میل ایڈریس شائع نہیں کیا جائے گا۔ ضروری شعبوں کا استعمال کیا جاتا ہے * لیبل لگائیں

اوپر سکرول کریں