MySQL डेटाबेस इनर जॉईन मल्टी-टेबल वापर? डावीकडे डावीकडे सामील होण्याची कार्यक्षमता

MySQL डेटाबेसआतील सामील मल्टी-टेबल वापर? डावीकडे डावीकडे सामील होण्याची कार्यक्षमता

माईस्क्ल कनेक्शनचा वापर

मागील प्रकरणांमध्ये, आपण एका सारणीवरून डेटा कसा वाचायचा हे शिकलो, जे तुलनेने सोपे आहे, परंतु वास्तविक अनुप्रयोगांमध्ये अनेक डेटा सारण्यांमधून डेटा वाचणे आवश्यक असते.

या धड्यात आम्ही तुम्हाला MySQL चे JOIN कसे वापरायचे ते दोन किंवा अधिक टेबल्समध्ये डेटाची क्वेरी करण्यासाठी दाखवू.

मल्टी-टेबल क्वेरीमध्ये सामील होण्यासाठी तुम्ही Mysql चे JOIN SELECT, UPDATE आणि DELETE स्टेटमेंट्स वापरू शकता.

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 विधान समतुल्य आहे:

WHERE कलम

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 वापरले आहे, आणि उजवीकडील tcount_tbl टेबलमध्ये chenweiliang_author चे कोणतेही संबंधित फील्ड मूल्य नसले तरीही हे विधान डावीकडील chenweiliang_tbl डेटा टेबलचा सर्व निवडलेला फील्ड डेटा वाचेल.


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_author फील्ड मूल्य नसले तरीही.


PHP स्क्रिप्टमध्ये जॉइन वापरणे

mysqli_query() फंक्शनचा वापर PHP मध्ये SQL स्टेटमेंट कार्यान्वित करण्यासाठी केला जातो, तुम्ही mysqli_query() फंक्शनचे पॅरामीटर म्हणून वरील समान SQL स्टेटमेंट वापरू शकता.

खालील उदाहरण वापरून पहा:

चाचणीनुसार 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 टूल वापर मार्गदर्शक" मिळवणारे पहिले व्हा! 🌟
📚 या मार्गदर्शकामध्ये प्रचंड मूल्य आहे, 🌟ही एक दुर्मिळ संधी आहे, ती चुकवू नका! ⏰⌛💨
आवडल्यास शेअर आणि लाईक करा!
तुमचे शेअरिंग आणि लाईक्स ही आमची सतत प्रेरणा आहे!

 

评论 评论

आपला ईमेल पत्ता प्रकाशित केला जाणार नाही. 用 项 已 用 * लेबल

वर स्क्रोल करा