新聞中心
在《 MySQL交叉連接》一節(jié)中我們了解了 MySQL 的交叉連接,本節(jié)主要介紹多表查詢的另一種方式——內(nèi)連接。

10年積累的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有張家界免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
內(nèi)連接(INNER JOIN)主要通過設(shè)置連接條件的方式,來移除查詢結(jié)果中某些數(shù)據(jù)行的交叉連接。簡單來說,就是利用條件表達(dá)式來消除交叉連接的某些數(shù)據(jù)行。
內(nèi)連接使用
INNER JOIN 關(guān)鍵字連接兩張表,并使用 ON 子句來設(shè)置連接條件。
如果沒有連接條件,INNER JOIN 和 CROSS JOIN 在語法上是等同的,兩者可以互換。
內(nèi)連接的語法格式如下:
SELECT <字段名> FROM <表1> INNER JOIN <表2> [ON子句]
語法說明如下。
- 字段名:需要查詢的字段名稱。
- <表1><表2>:需要內(nèi)連接的表名。
- INNER JOIN :內(nèi)連接中可以省略 INNER 關(guān)鍵字,只用關(guān)鍵字 JOIN。
- ON 子句:用來設(shè)置內(nèi)連接的連接條件。
INNER JOIN 也可以使用 WHERE 子句指定連接條件,但是 INNER JOIN ... ON 語法是官方的標(biāo)準(zhǔn)寫法,而且 WHERE 子句在某些時(shí)候會(huì)影響查詢的性能。
多個(gè)表內(nèi)連接時(shí),在 FROM 后連續(xù)使用 INNER JOIN 或 JOIN 即可。
內(nèi)連接可以查詢兩個(gè)或兩個(gè)以上的表。為了讓大家更好的理解,暫時(shí)只講解兩個(gè)表的連接查詢。
例 1
在 tb_students_info 表和 tb_course 表之間,使用內(nèi)連接查詢學(xué)生姓名和相對(duì)應(yīng)的課程名稱,SQL 語句和運(yùn)行結(jié)果如下。
mysql> SELECT s.name,c.course_name FROM tb_students_info s INNER JOIN tb_course c
-> ON s.course_id = c.id;
+--------+-------------+
| name | course_name |
+--------+-------------+
| Dany | Java |
| Green | MySQL |
| Henry | Java |
| Jane | Python |
| Jim | MySQL |
| John | Go |
| Lily | Go |
| Susan | C++ |
| Thomas | C++ |
| Tom | C++ |
+--------+-------------+
10 rows in set (0.00 sec) 在這里的查詢語句中,兩個(gè)表之間的關(guān)系通過 INNER JOIN 指定,連接的條件使用 ON 子句給出。
注意:當(dāng)對(duì)多個(gè)表進(jìn)行查詢時(shí),要在 SELECT 語句后面指定字段是來源于哪一張表。因此,在多表查詢時(shí),SELECT 語句后面的寫法是表名.列名。另外,如果表名非常長的話,也可以給表設(shè)置別名,這樣就可以直接在 SELECT 語句后面寫上表的別名.列名。
當(dāng)前標(biāo)題:創(chuàng)新互聯(lián)數(shù)據(jù)庫教程:MySQLINNERJOIN:內(nèi)連接
網(wǎng)頁路徑:http://m.fisionsoft.com.cn/article/cccjcec.html


咨詢
建站咨詢
