MySQL ಡೇಟಾಬೇಸ್ ಒಳ ಸೇರಲು ಬಹು-ಟೇಬಲ್ ಬಳಕೆ? ಎಡ ಎಡ ಸೇರಲು ಬಳಕೆಯ ದಕ್ಷತೆ

MySQL ಡೇಟಾಬೇಸ್ಒಳ ಸೇರಲು ಬಹು-ಟೇಬಲ್ ಬಳಕೆ? ಎಡ ಎಡ ಸೇರಲು ಬಳಕೆಯ ದಕ್ಷತೆ

ಮೈಸ್ಕ್ಲ್ ಸಂಪರ್ಕದ ಬಳಕೆ

ಹಿಂದಿನ ಅಧ್ಯಾಯಗಳಲ್ಲಿ, ಒಂದು ಕೋಷ್ಟಕದಿಂದ ಡೇಟಾವನ್ನು ಹೇಗೆ ಓದುವುದು ಎಂದು ನಾವು ಕಲಿತಿದ್ದೇವೆ, ಇದು ತುಲನಾತ್ಮಕವಾಗಿ ಸರಳವಾಗಿದೆ, ಆದರೆ ನೈಜ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಅನೇಕ ಡೇಟಾ ಕೋಷ್ಟಕಗಳಿಂದ ಡೇಟಾವನ್ನು ಓದುವುದು ಅಗತ್ಯವಾಗಿರುತ್ತದೆ.

ಎರಡು ಅಥವಾ ಹೆಚ್ಚಿನ ಕೋಷ್ಟಕಗಳಲ್ಲಿ ಡೇಟಾವನ್ನು ಪ್ರಶ್ನಿಸಲು MySQL ನ JOIN ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದನ್ನು ಈ ಅಧ್ಯಾಯದಲ್ಲಿ ನಾವು ನಿಮಗೆ ತೋರಿಸುತ್ತೇವೆ.

ಬಹು-ಕೋಷ್ಟಕ ಪ್ರಶ್ನೆಗಳಿಗೆ ಸೇರಲು ನೀವು Mysql ನ ಸೇರ್ಪಡೆಯನ್ನು ಆಯ್ಕೆ, ನವೀಕರಿಸಿ ಮತ್ತು ಅಳಿಸಿ ಹೇಳಿಕೆಗಳನ್ನು ಬಳಸಬಹುದು.

JOIN ಅನ್ನು ಅದರ ಕಾರ್ಯಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಈ ಕೆಳಗಿನ ಮೂರು ವರ್ಗಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ:

  • ಒಳ ಸೇರುವಿಕೆ (ಒಳ ಸೇರುವಿಕೆ, ಅಥವಾ ಈಕ್ವಿಜೋಯಿನ್): ಎರಡು ಕೋಷ್ಟಕಗಳಲ್ಲಿ ಹೊಂದಾಣಿಕೆಯ ಕ್ಷೇತ್ರಗಳೊಂದಿಗೆ ದಾಖಲೆಗಳನ್ನು ಪಡೆಯಿರಿ.
  • ಎಡ ಸೇರುವಿಕೆ (ಎಡ ಸೇರುವಿಕೆ):ಬಲ ಕೋಷ್ಟಕದಲ್ಲಿ ಯಾವುದೇ ಹೊಂದಾಣಿಕೆಯ ದಾಖಲೆಗಳಿಲ್ಲದಿದ್ದರೂ, ಎಡ ಕೋಷ್ಟಕದಲ್ಲಿ ಎಲ್ಲಾ ದಾಖಲೆಗಳನ್ನು ಪಡೆಯಿರಿ.
  • ಬಲ ಸೇರು (ಬಲ ಸೇರು): LEFT JOIN ಗೆ ವಿರುದ್ಧವಾಗಿ, ಎಡ ಕೋಷ್ಟಕದಲ್ಲಿ ಯಾವುದೇ ಹೊಂದಾಣಿಕೆಯ ದಾಖಲೆಗಳಿಲ್ಲದಿದ್ದರೂ ಸಹ, ಬಲ ಕೋಷ್ಟಕದಲ್ಲಿ ಎಲ್ಲಾ ದಾಖಲೆಗಳನ್ನು ಪಡೆಯಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

ಕಮಾಂಡ್ ಪ್ರಾಂಪ್ಟ್‌ನಲ್ಲಿ INNER 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 LEFT JOIN ಎಡ ಡೇಟಾ ಟೇಬಲ್‌ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಓದುತ್ತದೆ, ಬಲ ಕೋಷ್ಟಕವು ಯಾವುದೇ ಅನುಗುಣವಾದ ಡೇಟಾವನ್ನು ಹೊಂದಿಲ್ಲದಿದ್ದರೂ ಸಹ.

ನಿದರ್ಶನ

ಕೆಳಗಿನ ಉದಾಹರಣೆಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ ಚೆನ್ವೀಲಿಯಾಂಗ್_ಟಿಬಿಎಲ್ ಎಡ ಟೇಬಲ್ಗಾಗಿ,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 ಅನ್ನು ಬಳಸಲಾಗಿದೆ, ಮತ್ತು ಈ ಹೇಳಿಕೆಯು ಬಲಭಾಗದಲ್ಲಿರುವ tcount_tbl ಕೋಷ್ಟಕದಲ್ಲಿ chenweiliang_author ನ ಯಾವುದೇ ಅನುಗುಣವಾದ ಕ್ಷೇತ್ರ ಮೌಲ್ಯವಿಲ್ಲದಿದ್ದರೂ ಸಹ, ಎಡಭಾಗದಲ್ಲಿರುವ chenweiliang_tbl ಡೇಟಾ ಟೇಬಲ್‌ನ ಎಲ್ಲಾ ಆಯ್ಕೆಮಾಡಿದ ಕ್ಷೇತ್ರ ಡೇಟಾವನ್ನು ಓದುತ್ತದೆ.


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)

ಮೇಲಿನ ಉದಾಹರಣೆಯಲ್ಲಿ RIGHT JOIN ಅನ್ನು ಬಳಸಲಾಗಿದೆ, ಎಡಭಾಗದಲ್ಲಿರುವ chenweiliang_tbl ಕೋಷ್ಟಕದಲ್ಲಿ chenweiliang_author ನ ಯಾವುದೇ ಅನುಗುಣವಾದ ಕ್ಷೇತ್ರ ಮೌಲ್ಯವಿಲ್ಲದಿದ್ದರೂ ಸಹ, ಈ ಹೇಳಿಕೆಯು ಬಲಭಾಗದಲ್ಲಿರುವ ಡೇಟಾ ಟೇಬಲ್ tcount_tbl ನ ಎಲ್ಲಾ ಆಯ್ಕೆಮಾಡಿದ ಕ್ಷೇತ್ರ ಡೇಟಾವನ್ನು ಓದುತ್ತದೆ.


PHP ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ JOIN ಅನ್ನು ಬಳಸುವುದು

SQL ಹೇಳಿಕೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು mysqli_query() ಕಾರ್ಯವನ್ನು PHP ಯಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ, ನೀವು ಮೇಲಿನ ಅದೇ 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/ ) ಹಂಚಿಕೊಂಡ "Multi-table ಬಳಕೆಯ MySQL ಡೇಟಾಬೇಸ್ ಒಳ ಸೇರುವುದೇ? ಎಡಕ್ಕೆ ಸೇರ್ಪಡೆ ಬಳಕೆಯ ದಕ್ಷತೆ", ಇದು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.

ಈ ಲೇಖನದ ಲಿಂಕ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಸ್ವಾಗತ:https://www.chenweiliang.com/cwl-488.html

ಇತ್ತೀಚಿನ ನವೀಕರಣಗಳನ್ನು ಪಡೆಯಲು ಚೆನ್ ವೈಲಿಯಾಂಗ್ ಅವರ ಬ್ಲಾಗ್‌ನ ಟೆಲಿಗ್ರಾಮ್ ಚಾನಲ್‌ಗೆ ಸುಸ್ವಾಗತ!

🔔 ಚಾನಲ್ ಟಾಪ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಮೌಲ್ಯಯುತವಾದ "ChatGPT ಕಂಟೆಂಟ್ ಮಾರ್ಕೆಟಿಂಗ್ AI ಟೂಲ್ ಬಳಕೆಯ ಮಾರ್ಗದರ್ಶಿ" ಪಡೆಯುವಲ್ಲಿ ಮೊದಲಿಗರಾಗಿರಿ! 🌟
📚 ಈ ಮಾರ್ಗದರ್ಶಿಯು ದೊಡ್ಡ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿದೆ, 🌟ಇದು ಅಪರೂಪದ ಅವಕಾಶವಾಗಿದೆ, ಇದನ್ನು ತಪ್ಪಿಸಿಕೊಳ್ಳಬೇಡಿ! ⏰⌛💨
ಇಷ್ಟವಾದಲ್ಲಿ ಶೇರ್ ಮಾಡಿ ಮತ್ತು ಲೈಕ್ ಮಾಡಿ!
ನಿಮ್ಮ ಹಂಚಿಕೆ ಮತ್ತು ಇಷ್ಟಗಳು ನಮ್ಮ ನಿರಂತರ ಪ್ರೇರಣೆ!

 

ಪ್ರತಿಕ್ರಿಯೆಗಳು

ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಪ್ರಕಟಿಸಲಾಗುವುದಿಲ್ಲ. ಅಗತ್ಯವಿರುವ ಕ್ಷೇತ್ರಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ * ಲೇಬಲ್

ಮೇಲಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ