MySQL डेटाबेस आंतरिक बहु-तालिका उपयोग में शामिल होता है? उपयोग दक्षता में बाएं बाएं शामिल हों

MySQL डेटाबेसआंतरिक बहु-तालिका उपयोग में शामिल हों? उपयोग दक्षता में बाएं बाएं शामिल हों

Mysql कनेक्शन का उपयोग

पिछले अध्यायों में, हमने सीखा है कि एक तालिका से डेटा कैसे पढ़ा जाता है, जो अपेक्षाकृत सरल है, लेकिन वास्तविक अनुप्रयोगों में अक्सर कई डेटा तालिकाओं से डेटा पढ़ना आवश्यक होता है।

इस अध्याय में हम आपको दिखाएंगे कि दो या दो से अधिक तालिकाओं में डेटा को क्वेरी करने के लिए MySQL के JOIN का उपयोग कैसे करें।

आप मल्टी-टेबल प्रश्नों में शामिल होने के लिए मैसकल के जॉइन का उपयोग SELECT, UPDATE और DELETE स्टेटमेंट्स में कर सकते हैं।

JOIN को इसके कार्य के अनुसार मोटे तौर पर निम्नलिखित तीन श्रेणियों में विभाजित किया गया है:

  • इनर जॉइन (इनर जॉइन, या इक्विजॉइन): दो तालिकाओं में मेल खाने वाले फ़ील्ड के साथ रिकॉर्ड प्राप्त करें।
  • बाएं शामिल हों (बाएं शामिल हों):बाएँ तालिका में सभी रिकॉर्ड प्राप्त करें, भले ही दाएँ तालिका में कोई मिलान रिकॉर्ड न हो।
  • राइट जॉइन (राइट जॉइन): लेफ्ट जॉइन के विपरीत, इसका उपयोग सभी रिकॉर्ड्स को राइट टेबल में प्राप्त करने के लिए किया जाता है, भले ही लेफ्ट टेबल में कोई संबंधित मिलान रिकॉर्ड न हो।

कमांड प्रॉम्प्ट में इनर जॉइन का उपयोग करना

चेनवीलियांग डेटाबेस में हमारे पास दो टेबल 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 का उपयोग करेंगेइनर जॉइन (आप इनर को भी छोड़ सकते हैं और जॉइन का उपयोग कर सकते हैं, प्रभाव समान है)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 लेफ्ट जॉइन लेफ्ट डेटा टेबल के सभी डेटा को पढ़ेगा, भले ही राइट टेबल में कोई संबंधित डेटा न हो।

उदाहरण

निम्नलिखित उदाहरणों का प्रयास करें चेनवीलियांग_टीबीएल बाईं तालिका के लिए,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 डेटा तालिका के सभी डेटा को दाईं ओर पढ़ेगा, भले ही बाईं ओर तालिका में कोई संबंधित डेटा न हो।

उदाहरण

निम्नलिखित उदाहरणों का प्रयास करें चेनवीलियांग_टीबीएल बाईं तालिका के लिए,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)

उपरोक्त उदाहरण में राइट जॉइन का उपयोग किया गया है, यह कथन दाईं ओर डेटा तालिका tcount_tbl के सभी चयनित फ़ील्ड डेटा को पढ़ेगा, भले ही बाईं ओर तालिका chenweiliang_tbl में chenweiliang_author का कोई संबंधित फ़ील्ड मान न हो।


PHP स्क्रिप्ट में जॉइन का उपयोग करना

SQL कथनों को निष्पादित करने के लिए PHP में mysqli_query() फ़ंक्शन का उपयोग किया जाता है, आप 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

नवीनतम अपडेट प्राप्त करने के लिए चेन वेइलियांग के ब्लॉग के टेलीग्राम चैनल में आपका स्वागत है!

🔔 चैनल शीर्ष निर्देशिका में मूल्यवान "चैटजीपीटी कंटेंट मार्केटिंग एआई टूल उपयोग गाइड" प्राप्त करने वाले पहले व्यक्ति बनें! 🌟
📚 इस गाइड में बहुत महत्व है, 🌟यह एक दुर्लभ अवसर है, इसे न चूकें! ⏰⌛💨
अच्छा लगे तो शेयर और लाइक करें!
आपका साझा करना और पसंद करना हमारी निरंतर प्रेरणा है!

 

发表 评论

आपकी ईमेल आईडी प्रकाशित नहीं की जाएगी। आवश्यक फ़ील्ड का उपयोग किया जाता है * लेबल

शीर्ष तक स्क्रॉल करें