MySQL ڊيٽابيس اندروني جوائن ملٽي ٽيبل استعمال؟ کاٻي کاٻي شامل استعمال جي ڪارڪردگي

MySQL ڊيٽابيساندروني جوائن ملٽي ٽيبل استعمال؟ کاٻي کاٻي شامل استعمال جي ڪارڪردگي

Mysql ڪنيڪشن جو استعمال

پوئين بابن ۾، اسان سکيو آهي ته هڪ جدول مان ڊيٽا ڪيئن پڙهجي، جيڪا نسبتاً سادو آهي، پر حقيقي ايپليڪيشنن ۾ اهو ضروري هوندو آهي ته ڪيترن ئي ڊيٽا جدولن مان ڊيٽا کي پڙهجي.

هن باب ۾ اسين توهان کي ڏيکارينداسين ته ڪيئن استعمال ڪجي MySQL جي JOIN کي ٻن يا وڌيڪ جدولن ۾ ڊيٽا پڇڻ لاءِ.

توهان استعمال ڪري سگهو ٿا Mysql جي JOIN ۾ SELECT، UPDATE ۽ DELETE بيانن ۾ ملٽي ٽيبل سوالن ۾ شامل ٿيڻ لاءِ.

JOIN ان جي ڪم جي مطابق تقريبن ھيٺين ٽن ڀاڱن ۾ ورهايل آھي:

  • اندروني شموليت (اندر شامل ٿيڻ، يا هڪجهڙائي): ٻن جدولن ۾ ملندڙ فيلڊن سان رڪارڊ حاصل ڪريو.
  • کاٻي جوائن (کاٻي جوائن):کاٻي جدول ۾ سڀ رڪارڊ حاصل ڪريو، جيتوڻيڪ ساڄي ٽيبل ۾ ڪو به ملندڙ رڪارڊ نه آھي.
  • ساڄي شموليت (ساڄي شامل ٿيڻ): LEFT JOIN جي برعڪس، اهو استعمال ڪيو ويندو آهي سڀني رڪارڊس کي ساڄي جدول ۾ حاصل ڪرڻ لاءِ، توڙي جو کاٻي ٽيبل ۾ ڪو به ملندڙ ملندڙ رڪارڊ نه هجي.

ڪمانڊ پرامپٽ ۾ اندروني شموليت استعمال ڪندي

اسان وٽ ٻه ٽيبلون آهن tcount_tbl ۽ chenweiliang_tbl chenweiliang ڊيٽابيس ۾.ٻن ڊيٽا جدولن جي ڊيٽا هن ريت آهن:

مثال

ھيٺ ڏنل مثالن جي ڪوشش ڪريو:

ٽيسٽ مثال ڊيٽا

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)

اڳيون اسان استعمال ڪنداسين MySQLINNER JOIN (توهان INNER کي به ختم ڪري سگهو ٿا ۽ JOIN استعمال ڪري سگهو ٿا، اثر ساڳيو آهي)مٿين ٻن جدولن کي ڳنڍڻ لاءِ chenweiliang_count فيلڊ جي قيمت کي پڙهڻ لاءِ tcount_tbl ٽيبل ۾ chenweiliang_tbl ٽيبل ۾ سڀني chenweiliang_author شعبن سان لاڳاپيل آهي:

انٽرويو JOIN

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 LEFT JOIN کاٻي ڊيٽا جدول ۾ موجود سموري ڊيٽا کي پڙھندو، جيتوڻيڪ ساڄي جدول ۾ ڪا به لاڳاپيل ڊيٽا نه آھي.

مثال

ڪوشش ڪريو ھيٺ ڏنل مثالن کي chenweiliang_tbl کاٻي ٽيبل لاء،tcount_tbl ساڄي ٽيبل لاءِ، سمجھو MySQL LEFT JOIN جي ايپليڪيشن:

کاٻي حصو

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 RIGHT Join جي ايپليڪيشن:

حق ۾ شامل ٿيو

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_author فيلڊ جي قيمت سان لاڳاپيل نه آهي chenweiliang_tbl.


PHP اسڪرپٽ ۾ JOIN استعمال ڪندي

mysqli_query() فنڪشن PHP ۾ SQL بيانن تي عمل ڪرڻ لاءِ استعمال ڪيو ويندو آھي، توھان استعمال ڪري سگھوٿا ساڳيو SQL بيان مٿي ڏنل پيراميٽر طور 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

تازن تازه ڪاريون حاصل ڪرڻ لاءِ Chen Weiliang جي بلاگ جي ٽيليگرام چينل تي ڀليڪار!

🔔 چينل جي ٽاپ ڊاريڪٽري ۾ قيمتي "ChatGPT مواد مارڪيٽنگ AI اوزار استعمال ڪرڻ جي گائيڊ" حاصل ڪرڻ وارا پھريون بڻجي وڃو! 🌟
📚 هي گائيڊ وڏي قيمت تي مشتمل آهي، 🌟 هي هڪ نادر موقعو آهي، ان کي نه وڃايو! ⏰⌛💨
پسند اچي ته شيئر ڪريو ۽ پسند ڪريو!
توهان جي حصيداري ۽ پسند اسان جي مسلسل حوصلا آهن!

 

发表 评论

توهان جو اي ميل پتو شايع نه ڪيو ويندو. 必填 项 已 用 * ليبل

مٿي ڏانهن ڇڪيو