MySQL דאַטאַבייס ינער פאַרבינדן מולטי-טיש באַניץ? לינקס לינקס פאַרבינדן באַניץ עפעקטיווקייַט

MySQL דאַטאַבייסינער פאַרבינדן מולטי-טיש באַניץ? לינקס לינקס פאַרבינדן באַניץ עפעקטיווקייַט

Mysql נוצן פון קשר

אין די פריערדיקע קאפיטלען, מיר האָבן געלערנט ווי צו לייענען דאַטן פון איין טיש, וואָס איז לעפיערעך פּשוט, אָבער אין פאַקטיש אַפּלאַקיישאַנז עס איז אָפט נייטיק צו לייענען דאַטן פון קייפל דאַטן טישן.

אין דעם קאַפּיטל מיר וועלן ווייַזן איר ווי צו נוצן די JOIN פון MySQL צו אָנפרעג דאַטן אין צוויי אָדער מער טישן.

איר קענט נוצן די JOIN פון Mysql אין SELECT, UPDATE און DELETE סטייטמאַנץ צו פאַרבינדן מאַלטי-טיש קוויריז.

JOIN איז בעערעך צעטיילט אין די פאלגענדע דרייַ קאַטעגאָריעס לויט זיין פונקציע:

  • ינער פאַרבינדן (ינער פאַרבינדן, אָדער עקווידזשאָין): באַקומען רעקאָרדס מיט וואָס ריכטן פעלדער אין צוויי טישן.
  • LEFT JOIN (לינקס פאַרבינדן):באַקומען אַלע רעקאָרדס אין די לינקס טיש, אפילו אויב עס זענען קיין וואָס ריכטן רעקאָרדס אין די רעכט טיש.
  • RIGHT JOIN (רעכט פאַרבינדן): פאַרקערט צו LEFT JOIN, עס איז געניצט צו באַקומען אַלע רעקאָרדס אין די רעכט טיש, אפילו אויב עס זענען קיין קאָראַספּאַנדינג רעקאָרדס אין די לינקס טיש.

ניצן INNER JOIN אין באַפֿעלן פּינטלעך

מיר האָבן צוויי טישן tcount_tbl און chenweiliang_tbl אין די chenweiliang דאַטאַבייס.די דאַטן פון די צוויי דאַטן טישן זענען ווי גייט:

א שטייגער

פּרוּווט די פאלגענדע ביישפילן:

פּרובירן בייַשפּיל דאַטן

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ינער JOIN (איר קענט אויך פאַרלאָזן ינער און נוצן JOIN, די ווירקונג איז די זעלבע)צו פאַרבינדן די אויבן צוויי טישן צו לייענען די ווערט פון די chenweiliang_count פעלד קאָראַספּאַנדינג צו אַלע די chenweiliang_author פעלדער אין די chenweiliang_tbl טיש אין די tcount_tbl טיש:

INNER JOIN

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 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 אויף די לינקס, אפילו אויב עס איז קיין קאָראַספּאַנדינג פעלד ווערט פון chenweiliang_author אין די טיש tcount_tbl אויף די רעכט.


MySQL רעכט פאַרבינדן

MySQL RIGHT JOIN וועט לייענען אַלע די דאַטן אין די דאַטן טיש אויף די רעכט, אפילו אויב עס איז קיין קאָראַספּאַנדינג דאַטן אין די טיש אויף די לינקס.

א שטייגער

פּרוּווט די פאלגענדע ביישפילן צו chenweiliang_tbl פֿאַר די לינקס טיש,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 איז געניצט אין דעם אויבן בייַשפּיל, די ויסזאָגונג וועט לייענען אַלע די אויסגעקליבן פעלד דאַטן פון די דאַטן טיש tcount_tbl אויף די רעכט, אפילו אויב עס איז קיין קאָראַספּאַנדינג פעלד ווערט פון chenweiliang_author אין די טיש chenweiliang_tbl אויף די לינקס.


ניצן JOIN אין PHP שריפט

די mysqli_query () פֿונקציע איז געניצט אין PHP צו ויספירן סקל סטייטמאַנץ, איר קענען נוצן די זעלבע סקל ויסזאָגונג ווי אויבן ווי אַ פּאַראַמעטער צו די mysqli_query () פֿונקציע.

פּרוּווט די פאלגענדע בייַשפּיל:

MySQL ORDER BY פּרובירן:

<?
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);
?>

Hope Chen Weiliang בלאָג ( https://www.chenweiliang.com/ ) שערד "מולטי-טיש באַניץ פון MySQL דאַטאַבייס ינער פאַרבינדן? לינקס לינק פאַרבינדן יוסידזש עפיקאַסי", עס וועט העלפֿן איר.

ברוכים הבאים צו טיילן דעם לינק פון דעם אַרטיקל:https://www.chenweiliang.com/cwl-488.html

ברוכים הבאים צו די טעלעגראַם קאַנאַל פון Chen Weiliang ס בלאָג צו באַקומען די לעצטע דערהייַנטיקונגען!

🔔 זייט דער ערשטער צו באַקומען די ווערטפול "ChatGPT אינהאַלט מאַרקעטינג אַי געצייַג באַניץ גייד" אין די קאַנאַל שפּיץ וועגווייַזער! 🌟
📚 דער פירער כּולל ריזיק ווערט, 🌟 דאָס איז אַ זעלטן געלעגנהייט, טאָן ניט פעלן עס! ⏰⌛💨
ייַנטיילן און ווי אויב איר ווילט!
דיין ייַנטיילונג און לייקס זענען אונדזער קעסיידערדיק מאָוטאַוויישאַן!

 

发表 评论

אייער בליצפּאָסט אַדרעס וועט נישט זיין ארויס. פארלאנגט פעלדער זענען געניצט * פירמע

מעגילע צו שפּיץ