首頁  >  文章  >  資料庫  >  mysql中join和on的用法是什麼

mysql中join和on的用法是什麼

WBOY
WBOY原創
2021-12-28 15:28:0329540瀏覽

用法:1、join用於根據兩個或多個表中的列之間的關係,獲取存在於不同表中的數據,具有連接的作用,語法為「表1 join 表2 ”;2、on用於給連接的兩個表之間添加約束條件,語法為“表1 join 表2 on 條件”。

mysql中join和on的用法是什麼

本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

mysql中join和on的用法是什麼

#MySQL中join的用法:join具有連接的作用,即當兩個或兩個以上的表有關係時,需要用join來連接這些相關的表,來處理或分析資料:

join的用法:連接

舉例先看看,就懂了:

例如: 有一個表叫做stu,一個表叫class,stu join class會產生一個新的表,
mysql中join和on的用法是什麼
mysql中join和on的用法是什麼
我們執行: stu join class 之後,新的表成為:
mysql中join和on的用法是什麼
透過上面的範例總結一下:

  • join後面的列名是兩個表列名加起來的,可能會產生相同的列名,如id 和name
  • #先用表格stu中的一行資料表格class中的每一行資料不斷的拼接,產生新的行
  • 再用表格stu的第二行去和表格class中的每一行資料拼接,以此類推
  • 表格stu是3行,表class是2行,所以依照上面的規律會產成3*2 = 6行的新的表

on的用法:新增約束

一般我們join後面的表,並不是我們想要的,這時,可以用ON 來加一些條件:

#例如:stu join class on classid = class.id ,on後面就是我們加的條件,我們想要classid這一列數據和id這一列的數據相等的數據,這裡註意一下,join後的表列名是有重複的,所以ON後面的條件語句中我們要加上原來的表名。例如這裡:classid = class.id,由於id有兩列,這裡我們要表class中的id,所是是class.id。

所以: 執行:stu join class on classid = class.id 後,表格變成:
mysql中join和on的用法是什麼
小提示:當只有join時,其後面的on可以用where替換;

在資料庫中驗證:

mysql -u root -p                                 # 登录数据库,输入密码
CREATE DATABASE new;             # 创建数据库new
use new;                                            # 使用这个数据库
CREATE TABLE stu(id int primary key,name char(10),classid int)default charset = utf8mb4;             # 创建表stu
INSERT INTO stu (id,name,classid)VALUES(1,'A',1),(2,'B',1),(3,"C",2);                        # 插入数据
SELET * FROM stu;

mysql中join和on的用法是什麼

CREATE TABLE class(id int primary key,name char(10),teacher char(10))default charset = utf8mb4;          # 创建表class
INSERT INTO class (id,name,teacher)VALUES(1,'实验班',"小红"),(2,'普通班',"小蓝");                      #  插入数据
SELECT * FROM class;

mysql中join和on的用法是什麼

SELECT * FROM stu join class;                  #   用join连接两个表

mysql中join和on的用法是什麼

SELECT * FROM stu join class ON classid = class.id;               # 用on来添加条件

mysql中join和on的用法是什麼

推薦學習:mysql影片教學

#

以上是mysql中join和on的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn