婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Mysql join連接查詢的語法與示例

Mysql join連接查詢的語法與示例

熱門標簽:申請外呼電話線路 石家莊電商外呼系統 南通自動外呼系統軟件 日照旅游地圖標注 廣東人工電話機器人 芒果電話機器人自動化 信陽穩定外呼系統運營商 湖南人工外呼系統多少錢 百度地圖圖標標注中心

連接查詢:

是將兩個查詢(或表)的每一行,以“兩兩橫同對接”的方式,所得到的所有行的結果,即一個表中的某行,跟另一個表中的某行。進行“橫向對接”,得到一個新行。

連接查詢包括以下這些不同形式,連接方式:

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

連接查詢語法:

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

測試數據:

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、交叉連接其實可以認為是連接查詢的“完全版本”, 即所有行都無條件地都連接起來。

2、關鍵字 “cross” 可以省略;

3、交叉連接又稱為“笛卡爾積”,通常應用價值不大

語法形式:

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

規范的交叉連接寫法

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 進行連接,相當于 cross join,默認就是 交叉連接

mysql> select * from test join user;

查詢結果跟上面一致!!!

還可以直接 from 表,表... 也相當于是交叉連接

mysql> select * from test, user;

查詢結果跟上面一致!!!

內連接 (inner join)

1、內連接其實是交叉連接的基礎上,再通過 on 條件而篩選出來的部分數據。

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

3、內連接是應用最廣泛的一種連接查詢,其本質是根據條件篩選出“有意義的數據”。

語法形式:

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

查出兩個表中 name 字段相等的數據

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 |
+----+-------+------+------+----+-------+------+

查出兩個表中 name 字段相等的數據,通過 as 給表取個別名進行使用

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

查詢結果跟上面一致!!!

查出兩個表中 name 字段相等,test 表中 age>15,user 表中 age>10 的數據

如果使用表中有重復的字段,那么就需要通過 [表名.字段名] 來使用,例如 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 |
+----+-------+------+------+----+-------+------+

查出兩個表中 name 字段相等,且 sex='男' 的數據。

如果使用表中沒有重復的字段,那么可以通過 [表名.字段名] 或者直接使用 [字段名] 使用,例如 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、左外連接其實是保證左邊表的數據都能夠取出的一種連接 。

2、左外連接其實是在內連接的基礎上,再加上左邊表中所有不能滿足條件的數據

3、關鍵字 “outer" 可以省略。

語法形式:

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

以左邊的表為基準,保證左邊表的數據全部顯示,匹配不到的數據為 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、右外連接其實是保證右邊表的數據都能夠取出的一種連接 。

2、右外連接其實是在內連接的基礎上,再加上右邊表中所有不能滿足條件的數據

3、關鍵字 “outer" 可以省略。

語法形式:

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

以右邊的表為基準,保證右邊表的數據全部顯示,匹配不到的數據為 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 |
+------+-------+------+------+----+-------+------+

總結

到此這篇關于Mysql join連接查詢的語法與示例的文章就介紹到這了,更多相關Mysql join連接查詢內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • php7連接MySQL實現簡易查詢程序的方法
  • mysql連接查詢、聯合查詢、子查詢原理與用法實例詳解
  • MySQL利用UNION連接2個查詢排序失效詳解
  • python針對mysql數據庫的連接、查詢、更新、刪除操作示例
  • Mysql自連接查詢實例詳解
  • 詳解MySQL數據庫--多表查詢--內連接,外連接,子查詢,相關子查詢
  • mysql多表連接查詢實例講解
  • mysql多個left join連接查詢用法分析
  • JDBC連接MySql數據庫步驟 以及查詢、插入、刪除、更新等
  • mysql連接查詢(左連接,右連接,內連接)
  • MySQL 連接查詢的原理和應用

標簽:阿里 公主嶺 沈陽 惠州 合肥 呼和浩特 天津 牡丹江

巨人網絡通訊聲明:本文標題《Mysql join連接查詢的語法與示例》,本文關鍵詞  Mysql,join,連接,查詢,的,語法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Mysql join連接查詢的語法與示例》相關的同類信息!
  • 本頁收集關于Mysql join連接查詢的語法與示例的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 兖州市| 阜新市| 陆河县| 吕梁市| 上栗县| 美姑县| 乃东县| 莎车县| 永修县| 盐山县| 宁安市| 上思县| 道孚县| 宁夏| 和硕县| 道真| 安福县| 桐乡市| 汕头市| 若羌县| 梓潼县| 武强县| 乐平市| 绥芬河市| 扎赉特旗| 腾冲县| 五台县| 忻城县| 黑山县| 绿春县| 昌平区| 曲周县| 景谷| 静安区| 锦屏县| 彩票| 大连市| 景德镇市| 偃师市| 凤山市| 芒康县|