欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在MySQL中使用JOIN語(yǔ)句進(jìn)行連接操作的詳細(xì)教程

 更新時(shí)間:2015年05月26日 17:37:54   投稿:goldensun  
這篇文章主要介紹了在MySQL中使用JOIN語(yǔ)句進(jìn)行連接操作的詳細(xì)教程,是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下

到目前,我們已經(jīng)學(xué)習(xí)了從一個(gè)表中獲取數(shù)據(jù)。這是簡(jiǎn)單的需要,但在大多數(shù)現(xiàn)實(shí)MySQL的使用,經(jīng)常需要將數(shù)據(jù)從多個(gè)表中的一個(gè)單一的查詢(xún)。

可以使用多個(gè)表中的單一SQL查詢(xún)。在MySQL中聯(lián)接(join)行為是指兩個(gè)或多個(gè)表到一個(gè)表中可以使用連接在SELECT,UPDATE和DELETE語(yǔ)句中加入MySQL表。我們將看到一個(gè)例子LEFT JOIN簡(jiǎn)單的MySQL連接。
在命令提示符使用聯(lián)接:

假設(shè)我們兩個(gè)表的教程tcount_tbl和tutorials_tbl的完整列表如下:
例子:

試試下面的例子:

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * FROM tcount_tbl;
+-----------------+----------------+
| tutorial_author | tutorial_count |
+-----------------+----------------+
| mahran     |       20 |
| mahnaz     |      NULL |
| Jen       |      NULL |
| Gill      |       20 |
| John Poul    |       1 |
| Sanjay     |       1 |
+-----------------+----------------+
6 rows in set (0.01 sec)
mysql> SELECT * from tutorials_tbl;
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|      1 | Learn PHP   | John Poul    | 2007-05-24   |
|      2 | Learn MySQL  | Abdul S     | 2007-05-24   |
|      3 | JAVA Tutorial | Sanjay     | 2007-05-06   |
+-------------+----------------+-----------------+-----------------+
3 rows in set (0.00 sec)
mysql>

現(xiàn)在,加入這兩個(gè)表我們可以編寫(xiě)一個(gè)SQL查詢(xún)。這個(gè)查詢(xún)會(huì)選擇所有的作者從表tutorials_tbl,從tcount_tbl會(huì)拿起相應(yīng)數(shù)量的教程。

mysql> SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count
  -> FROM tutorials_tbl a, tcount_tbl b
  -> WHERE a.tutorial_author = b.tutorial_author;
+-------------+-----------------+----------------+
| tutorial_id | tutorial_author | tutorial_count |
+-------------+-----------------+----------------+
|      1 | John Poul    |       1 |
|      3 | Sanjay     |       1 |
+-------------+-----------------+----------------+
2 rows in set (0.01 sec)
mysql>

在PHP腳本中使用聯(lián)接:

可以使用任何上述的SQL查詢(xún)的PHP腳本。只需要通過(guò)PHP函數(shù)mysql_query()執(zhí)行SQL查詢(xún),然后用常規(guī)方法獲取結(jié)果。
例子:

試試下面的例子:

<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count
    FROM tutorials_tbl a, tcount_tbl b
    WHERE a.tutorial_author = b.tutorial_author';

mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
 die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
  echo "Author:{$row['tutorial_author']} <br> ".
     "Count: {$row['tutorial_count']} <br> ".
     "Tutorial ID: {$row['tutorial_id']} <br> ".
     "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?>

MySQL左連接:

一個(gè)簡(jiǎn)單的連接和一個(gè)MySQL左連接是不同的。一個(gè)MySQL LEFT JOIN提供了額外的考慮到在左邊的表。

如果做了LEFT JOIN,得到的所有記錄以同樣的方式相匹配,此外,得到一個(gè)額外的記錄每個(gè)不匹配的記錄,在左表中的聯(lián)接 - 從而保證了每一個(gè)作者得到關(guān)聯(lián)(本例子中):
實(shí)例:

試試下面的例子就明白了LEFT JOIN:

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count
  -> FROM tutorials_tbl a LEFT JOIN tcount_tbl b
  -> ON a.tutorial_author = b.tutorial_author;
+-------------+-----------------+----------------+
| tutorial_id | tutorial_author | tutorial_count |
+-------------+-----------------+----------------+
|      1 | John Poul    |       1 |
|      2 | Abdul S     |      NULL |
|      3 | Sanjay     |       1 |
+-------------+-----------------+----------------+
3 rows in set (0.02 sec)

需要做更多的實(shí)踐才能熟悉JOINS。這是一個(gè)復(fù)雜的概念,在MySQL/SQL將變得更加清晰。

相關(guān)文章

  • mysql 5.7.19 二進(jìn)制最新安裝

    mysql 5.7.19 二進(jìn)制最新安裝

    這篇文章主要介紹了mysql 5.7.19 二進(jìn)制最新安裝的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • Centos6.5 編譯安裝mysql 5.6.16 詳細(xì)教程

    Centos6.5 編譯安裝mysql 5.6.16 詳細(xì)教程

    這篇文章主要為大家分享了Centos6.5編譯安裝mysql 5.6.16詳細(xì)教程,感興趣的小伙伴們可以參考一下
    2016-08-08
  • MySQL Packet for query is too large 問(wèn)題及解決方法

    MySQL Packet for query is too large 問(wèn)題及解決方法

    這篇文章主要介紹了MySQL Packet for query is too large 問(wèn)題及解決方法,需要的朋友可以參考下
    2018-05-05
  • MySQL游標(biāo)概念與用法詳解

    MySQL游標(biāo)概念與用法詳解

    這篇文章主要介紹了MySQL游標(biāo)概念與用法,簡(jiǎn)單描述了mysql游標(biāo)的概念、原理并結(jié)合實(shí)例形式詳細(xì)分析了游標(biāo)的各種常見(jiàn)用法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • mysql 字符集的系統(tǒng)變量說(shuō)明

    mysql 字符集的系統(tǒng)變量說(shuō)明

    mysql 字符集的系統(tǒng)變量的一些說(shuō)明,大家在使用過(guò)程中,可以作個(gè)參考。
    2009-07-07
  • MySQL存儲(chǔ)引擎的實(shí)現(xiàn)要素分析

    MySQL存儲(chǔ)引擎的實(shí)現(xiàn)要素分析

    這篇文章主要為大家介紹了MySQL存儲(chǔ)引擎的實(shí)現(xiàn)要素分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 一文徹底搞懂MySQL?TimeStamp時(shí)區(qū)問(wèn)題

    一文徹底搞懂MySQL?TimeStamp時(shí)區(qū)問(wèn)題

    MySQL的timestamp類(lèi)型默認(rèn)使用的是服務(wù)器的時(shí)區(qū)來(lái)存儲(chǔ)時(shí)間值,這意味著如果服務(wù)器的時(shí)區(qū)發(fā)生了變化,那么存儲(chǔ)的timestamp值也會(huì)發(fā)生變化,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)一文徹底搞懂MySQL?TimeStamp時(shí)區(qū)問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • MySQL中的行級(jí)鎖、表級(jí)鎖、頁(yè)級(jí)鎖

    MySQL中的行級(jí)鎖、表級(jí)鎖、頁(yè)級(jí)鎖

    這篇文章主要介紹了MySQL中的行級(jí)鎖、表級(jí)鎖、頁(yè)級(jí)鎖,以及分享了多種避免死鎖的方法,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Mysql中的嵌套子查詢(xún)問(wèn)題

    Mysql中的嵌套子查詢(xún)問(wèn)題

    這篇文章主要介紹了Mysql嵌套子查詢(xún),子查詢(xún)就是指的在一個(gè)完整的查詢(xún)語(yǔ)句之中,嵌套若干個(gè)不同功能的小查詢(xún),從而一起完成復(fù)雜查詢(xún)的一種編寫(xiě)形式,為了讓讀者更加清楚子查詢(xún)的概念,感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • MySQL如何給表和字段添加注釋

    MySQL如何給表和字段添加注釋

    這篇文章主要介紹了MySQL如何給表和字段添加注釋問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評(píng)論