MySQL ਡਾਟਾਬੇਸ ਅੰਦਰੂਨੀ ਜੋੜਨ ਮਲਟੀ-ਟੇਬਲ ਵਰਤੋਂ? ਖੱਬਾ ਖੱਬਾ ਜੋੜਨ ਵਰਤੋਂ ਕੁਸ਼ਲਤਾ

MySQL ਡਾਟਾਬੇਸਅੰਦਰੂਨੀ ਜੋੜ ਮਲਟੀ-ਟੇਬਲ ਵਰਤੋਂ? ਖੱਬਾ ਖੱਬਾ ਜੋੜਨ ਵਰਤੋਂ ਕੁਸ਼ਲਤਾ

ਮਾਈਸਕੈਲ ਕੁਨੈਕਸ਼ਨ ਦੀ ਵਰਤੋਂ

ਪਿਛਲੇ ਅਧਿਆਵਾਂ ਵਿੱਚ, ਅਸੀਂ ਸਿੱਖਿਆ ਹੈ ਕਿ ਇੱਕ ਸਾਰਣੀ ਤੋਂ ਡੇਟਾ ਕਿਵੇਂ ਪੜ੍ਹਨਾ ਹੈ, ਜੋ ਕਿ ਮੁਕਾਬਲਤਨ ਸਧਾਰਨ ਹੈ, ਪਰ ਅਸਲ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਅਕਸਰ ਕਈ ਡੇਟਾ ਟੇਬਲਾਂ ਤੋਂ ਡੇਟਾ ਨੂੰ ਪੜ੍ਹਨਾ ਜ਼ਰੂਰੀ ਹੁੰਦਾ ਹੈ।

ਇਸ ਚੈਪਟਰ ਵਿੱਚ ਅਸੀਂ ਤੁਹਾਨੂੰ ਦਿਖਾਵਾਂਗੇ ਕਿ ਦੋ ਜਾਂ ਦੋ ਤੋਂ ਵੱਧ ਟੇਬਲਾਂ ਵਿੱਚ ਡੇਟਾ ਦੀ ਪੁੱਛਗਿੱਛ ਕਰਨ ਲਈ MySQL ਦੇ JOIN ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ।

ਤੁਸੀਂ ਮਲਟੀ-ਟੇਬਲ ਪੁੱਛਗਿੱਛਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋਣ ਲਈ SELECT, UPDATE ਅਤੇ DELETE ਸਟੇਟਮੈਂਟਾਂ ਵਿੱਚ Mysql ਦੇ JOIN ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।

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 ਵਰਤਿਆ ਗਿਆ ਹੈ। ਇਹ ਕਥਨ ਖੱਬੇ ਪਾਸੇ ਡੇਟਾ ਟੇਬਲ 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)

ਉਪਰੋਕਤ ਉਦਾਹਰਨ ਵਿੱਚ ਸੱਜੇ ਸ਼ਾਮਲ ਹੋਣ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਹੈ, ਇਹ ਕਥਨ ਸਹੀ ਡੇਟਾ ਸਾਰਣੀ tcount_tbl ਦੇ ਸਾਰੇ ਚੁਣੇ ਹੋਏ ਫੀਲਡ ਡੇਟਾ ਨੂੰ ਪੜ੍ਹੇਗਾ, ਭਾਵੇਂ ਖੱਬੇ ਸਾਰਣੀ ਵਿੱਚ chenweiliang_author ਫੀਲਡ ਮੁੱਲ ਨਾ ਹੋਵੇ।


PHP ਸਕ੍ਰਿਪਟ ਵਿੱਚ JOIN ਦੀ ਵਰਤੋਂ ਕਰਨਾ

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 ਸਮੱਗਰੀ ਮਾਰਕੀਟਿੰਗ AI ਟੂਲ ਵਰਤੋਂ ਗਾਈਡ" ਪ੍ਰਾਪਤ ਕਰਨ ਵਾਲੇ ਪਹਿਲੇ ਬਣੋ! 🌟
📚 ਇਸ ਗਾਈਡ ਵਿੱਚ ਬਹੁਤ ਵੱਡਾ ਮੁੱਲ ਹੈ, 🌟ਇਹ ਇੱਕ ਦੁਰਲੱਭ ਮੌਕਾ ਹੈ, ਇਸ ਨੂੰ ਨਾ ਗੁਆਓ! ⏰⌛💨
ਜੇ ਚੰਗਾ ਲੱਗੇ ਤਾਂ ਸ਼ੇਅਰ ਅਤੇ ਲਾਈਕ ਕਰੋ!
ਤੁਹਾਡੀ ਸ਼ੇਅਰਿੰਗ ਅਤੇ ਪਸੰਦ ਸਾਡੀ ਨਿਰੰਤਰ ਪ੍ਰੇਰਣਾ ਹਨ!

 

ਇੱਕ ਟਿੱਪਣੀ ਪੋਸਟ

ਤੁਹਾਡਾ ਈਮੇਲ ਪਤਾ ਪ੍ਰਕਾਸ਼ਤ ਨਹੀ ਕੀਤਾ ਜਾਵੇਗਾ. ਲੋੜੀਂਦੇ ਖੇਤਰ ਵਰਤੇ ਜਾ ਰਹੇ ਹਨ * ਲੇਬਲ

ਸਿਖਰ ਤੱਕ ਸਕ੍ਰੋਲ ਕਰੋ