主頁(yè) > 知識(shí)庫(kù) > Mysql join連接查詢(xún)的語(yǔ)法與示例

Mysql join連接查詢(xún)的語(yǔ)法與示例

熱門(mén)標(biāo)簽:申請(qǐng)外呼電話(huà)線(xiàn)路 石家莊電商外呼系統(tǒng) 南通自動(dòng)外呼系統(tǒng)軟件 日照旅游地圖標(biāo)注 廣東人工電話(huà)機(jī)器人 芒果電話(huà)機(jī)器人自動(dòng)化 信陽(yáng)穩(wěn)定外呼系統(tǒng)運(yùn)營(yíng)商 湖南人工外呼系統(tǒng)多少錢(qián) 百度地圖圖標(biāo)標(biāo)注中心

連接查詢(xún):

是將兩個(gè)查詢(xún)(或表)的每一行,以“兩兩橫同對(duì)接”的方式,所得到的所有行的結(jié)果,即一個(gè)表中的某行,跟另一個(gè)表中的某行。進(jìn)行“橫向?qū)印?,得到一個(gè)新行。

連接查詢(xún)包括以下這些不同形式,連接方式:

交叉連接、內(nèi)連接、外連接(分:左外連接,右外連接)

連接查詢(xún)語(yǔ)法:

select * from 表名 [連接方式] join 表名 [on 連接條件] where ...;

測(cè)試數(shù)據(jù):

mysql> select * from test;
+----+--------+------+------+
| id | name | sex | age |
+----+--------+------+------+
| 1 | name1 | 女 | 15 |
| 2 | name1 | 女 | 15 |
| 4 | name2 | 男 | 30 |
| 5 | name50 | 男 | 12 |
+----+--------+------+------+

mysql> select * from user;
+----+-------+------+
| id | name | age |
+----+-------+------+
| 1 | name1 | 18 |
| 2 | name2 | 15 |
| 3 | name3 | 20 |
| 4 | name4 | 30 |
+----+-------+------+

交叉連接 (cross join)

1、交叉連接其實(shí)可以認(rèn)為是連接查詢(xún)的“完全版本”, 即所有行都無(wú)條件地都連接起來(lái)。

2、關(guān)鍵字 “cross” 可以省略;

3、交叉連接又稱(chēng)為“笛卡爾積”,通常應(yīng)用價(jià)值不大

語(yǔ)法形式:

select * from 表名, 表名;
select * from 表名 join 表名;
select * from 表名 cross join 表名;

規(guī)范的交叉連接寫(xiě)法

mysql> select * from test cross join user;
+----+--------+------+------+----+-------+------+
| id | name | sex | age | id | name | age |
+----+--------+------+------+----+-------+------+
| 1 | name1 | 女 | 15 | 1 | name1 | 18 |
| 2 | name1 | 女 | 15 | 1 | name1 | 18 |
| 4 | name2 | 男 | 30 | 1 | name1 | 18 |
| 5 | name50 | 男 | 12 | 1 | name1 | 18 |
| 1 | name1 | 女 | 15 | 2 | name2 | 15 |
| 2 | name1 | 女 | 15 | 2 | name2 | 15 |
| 4 | name2 | 男 | 30 | 2 | name2 | 15 |
| 5 | name50 | 男 | 12 | 2 | name2 | 15 |
| 1 | name1 | 女 | 15 | 3 | name3 | 20 |
| 2 | name1 | 女 | 15 | 3 | name3 | 20 |
| 4 | name2 | 男 | 30 | 3 | name3 | 20 |
| 5 | name50 | 男 | 12 | 3 | name3 | 20 |
| 1 | name1 | 女 | 15 | 4 | name4 | 30 |
| 2 | name1 | 女 | 15 | 4 | name4 | 30 |
| 4 | name2 | 男 | 30 | 4 | name4 | 30 |
| 5 | name50 | 男 | 12 | 4 | name4 | 30 |
+----+--------+------+------+----+-------+------+

直接使用 join 進(jìn)行連接,相當(dāng)于 cross join,默認(rèn)就是 交叉連接

mysql> select * from test join user;

查詢(xún)結(jié)果跟上面一致!!!

還可以直接 from 表,表... 也相當(dāng)于是交叉連接

mysql> select * from test, user;

查詢(xún)結(jié)果跟上面一致!!!

內(nèi)連接 (inner join)

1、內(nèi)連接其實(shí)是交叉連接的基礎(chǔ)上,再通過(guò) on 條件而篩選出來(lái)的部分?jǐn)?shù)據(jù)。

2、關(guān)鍵字 "inner" 可以省略,但建議寫(xiě)上,真正有意義的是 on 連接條件。

3、內(nèi)連接是應(yīng)用最廣泛的一種連接查詢(xún),其本質(zhì)是根據(jù)條件篩選出“有意義的數(shù)據(jù)”。

語(yǔ)法形式:

select * from 表名 join 表名 on 連接條件;
select * from 表名 inner join 表名 on 連接條件;

查出兩個(gè)表中 name 字段相等的數(shù)據(jù)

mysql> select * from test inner join user on test.name=user.name;
+----+-------+------+------+----+-------+------+
| id | name | sex | age | id | name | age |
+----+-------+------+------+----+-------+------+
| 1 | name1 | 女 | 15 | 1 | name1 | 18 |
| 2 | name1 | 女 | 15 | 1 | name1 | 18 |
| 4 | name2 | 男 | 30 | 2 | name2 | 15 |
+----+-------+------+------+----+-------+------+

查出兩個(gè)表中 name 字段相等的數(shù)據(jù),通過(guò) as 給表取個(gè)別名進(jìn)行使用

mysql> select * from test as t inner join user as u on t.name=u.name;

查詢(xún)結(jié)果跟上面一致!!!

查出兩個(gè)表中 name 字段相等,test 表中 age>15,user 表中 age>10 的數(shù)據(jù)

如果使用表中有重復(fù)的字段,那么就需要通過(guò) [表名.字段名] 來(lái)使用,例如 age :

mysql> select * from test inner join user on test.name=user.name where test.age>15 and user.age>10;
+----+-------+------+------+----+-------+------+
| id | name | sex | age | id | name | age |
+----+-------+------+------+----+-------+------+
| 4 | name2 | 男 | 30 | 2 | name2 | 15 |
+----+-------+------+------+----+-------+------+

查出兩個(gè)表中 name 字段相等,且 sex='男' 的數(shù)據(jù)。

如果使用表中沒(méi)有重復(fù)的字段,那么可以通過(guò) [表名.字段名] 或者直接使用 [字段名] 使用,例如 sex :

mysql> select * from test as t inner join user as u on t.name=u.name where t.sex='男';
mysql> select * from test as t inner join user as u on t.name=u.name where sex='男';
+----+-------+------+------+----+-------+------+
| id | name | sex | age | id | name | age |
+----+-------+------+------+----+-------+------+
| 4 | name2 | 男 | 30 | 2 | name2 | 15 |
+----+-------+------+------+----+-------+------+

外連接 - 左外連接 (left join)

1、左外連接其實(shí)是保證左邊表的數(shù)據(jù)都能夠取出的一種連接 。

2、左外連接其實(shí)是在內(nèi)連接的基礎(chǔ)上,再加上左邊表中所有不能滿(mǎn)足條件的數(shù)據(jù)

3、關(guān)鍵字 “outer" 可以省略。

語(yǔ)法形式:

select * from 表名 left [outer] join on 連接條件 where ...;

以左邊的表為基準(zhǔn),保證左邊表的數(shù)據(jù)全部顯示,匹配不到的數(shù)據(jù)為 NULL

mysql> select * from test left join user on test.name=user.name;
+----+--------+------+------+------+-------+------+
| id | name | sex | age | id | name | age |
+----+--------+------+------+------+-------+------+
| 1 | name1 | 女 | 15 | 1 | name1 | 18 |
| 2 | name1 | 女 | 15 | 1 | name1 | 18 |
| 4 | name2 | 男 | 30 | 2 | name2 | 15 |
| 5 | name50 | 男 | 12 | NULL | NULL | NULL |
+----+--------+------+------+------+-------+------+

外連接 - 右外連接 (right join)

1、右外連接其實(shí)是保證右邊表的數(shù)據(jù)都能夠取出的一種連接 。

2、右外連接其實(shí)是在內(nèi)連接的基礎(chǔ)上,再加上右邊表中所有不能滿(mǎn)足條件的數(shù)據(jù)

3、關(guān)鍵字 “outer" 可以省略。

語(yǔ)法形式:

select * from 表名 right [outer] join on 連接條件 where ...;

以右邊的表為基準(zhǔn),保證右邊表的數(shù)據(jù)全部顯示,匹配不到的數(shù)據(jù)為 NULL

mysql> select * from test right join user on test.name=user.name;
+------+-------+------+------+----+-------+------+
| id | name | sex | age | id | name | age |
+------+-------+------+------+----+-------+------+
| 1 | name1 | 女 | 15 | 1 | name1 | 18 |
| 2 | name1 | 女 | 15 | 1 | name1 | 18 |
| 4 | name2 | 男 | 30 | 2 | name2 | 15 |
| NULL | NULL | NULL | NULL | 3 | name3 | 20 |
| NULL | NULL | NULL | NULL | 4 | name4 | 30 |
+------+-------+------+------+----+-------+------+

總結(jié)

到此這篇關(guān)于Mysql join連接查詢(xún)的語(yǔ)法與示例的文章就介紹到這了,更多相關(guān)Mysql join連接查詢(xún)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • php7連接MySQL實(shí)現(xiàn)簡(jiǎn)易查詢(xún)程序的方法
  • mysql連接查詢(xún)、聯(lián)合查詢(xún)、子查詢(xún)?cè)砼c用法實(shí)例詳解
  • MySQL利用UNION連接2個(gè)查詢(xún)排序失效詳解
  • python針對(duì)mysql數(shù)據(jù)庫(kù)的連接、查詢(xún)、更新、刪除操作示例
  • Mysql自連接查詢(xún)實(shí)例詳解
  • 詳解MySQL數(shù)據(jù)庫(kù)--多表查詢(xún)--內(nèi)連接,外連接,子查詢(xún),相關(guān)子查詢(xún)
  • mysql多表連接查詢(xún)實(shí)例講解
  • mysql多個(gè)left join連接查詢(xún)用法分析
  • JDBC連接MySql數(shù)據(jù)庫(kù)步驟 以及查詢(xún)、插入、刪除、更新等
  • mysql連接查詢(xún)(左連接,右連接,內(nèi)連接)
  • MySQL 連接查詢(xún)的原理和應(yīng)用

標(biāo)簽:阿里 公主嶺 沈陽(yáng) 惠州 合肥 呼和浩特 天津 牡丹江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql join連接查詢(xún)的語(yǔ)法與示例》,本文關(guān)鍵詞  Mysql,join,連接,查詢(xún),的,語(yǔ)法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mysql join連接查詢(xún)的語(yǔ)法與示例》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Mysql join連接查詢(xún)的語(yǔ)法與示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章