MySQL ડેટાબેઝ આંતરિક જોડાવા મલ્ટિ-ટેબલ વપરાશ? ડાબી ડાબી જોડાઈ વપરાશ કાર્યક્ષમતા

MySQL ડેટાબેઝઆંતરિક જોડાવા મલ્ટી ટેબલ વપરાશ? ડાબી ડાબી જોડાઈ વપરાશ કાર્યક્ષમતા

MySQL જોડાણનો ઉપયોગ

અગાઉના પ્રકરણોમાં, આપણે એક કોષ્ટકમાંથી ડેટા કેવી રીતે વાંચવો તે શીખ્યા, જે પ્રમાણમાં સરળ છે, પરંતુ વાસ્તવિક એપ્લિકેશનોમાં ઘણી વખત બહુવિધ ડેટા કોષ્ટકોમાંથી ડેટા વાંચવો જરૂરી છે.

આ પ્રકરણમાં અમે તમને બતાવીશું કે બે અથવા વધુ કોષ્ટકોમાં ડેટાની ક્વેરી કરવા માટે MySQL ના JOIN નો ઉપયોગ કેવી રીતે કરવો.

તમે મલ્ટી-ટેબલ પ્રશ્નોમાં જોડાવા માટે SELECT, UPDATE અને DELETE સ્ટેટમેન્ટમાં Mysql ના JOIN નો ઉપયોગ કરી શકો છો.

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 ફીલ્ડને અનુરૂપ ચેનવેલીઆંગ_કાઉન્ટ ફીલ્ડનું મૂલ્ય વાંચવા માટે ઉપરોક્ત બે કોષ્ટકોને જોડો:

આંતરિક જોડાણ

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 LEFT JOIN ડાબા ડેટા કોષ્ટકમાંનો તમામ ડેટા વાંચશે, પછી ભલે જમણા કોષ્ટકમાં કોઈ અનુરૂપ ડેટા ન હોય.

ઉદાહરણ

નીચેના ઉદાહરણો અજમાવી જુઓ 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_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 ટૂલ વપરાશ માર્ગદર્શિકા" મેળવનારા પ્રથમ બનો! 🌟
📚 આ માર્ગદર્શિકામાં ઘણું મૂલ્ય છે, 🌟આ એક દુર્લભ તક છે, તેને ચૂકશો નહીં! ⏰⌛💨
ગમે તો શેર કરો અને લાઈક કરો!
તમારી શેરિંગ અને લાઈક્સ એ અમારી સતત પ્રેરણા છે!

 

评论 评论

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. જરૂરી ક્ષેત્રો વપરાય છે * લેબલ

ટોચ પર સ્ક્રોલ કરો