join的用法:連接 舉例先看看,就懂了: 例如: 有一個(gè)表叫做stu,一個(gè)表叫class,stu join class會生成一個(gè)新的表, mysql中join和on怎么用 mysql中join和on怎么用 我們執(zhí)行: stu join class 后,新的表成為: mysql中join和on怎么用 通過上面的例子總結(jié)一下:
join后的列名是兩個(gè)表列名加起來的,可能會產(chǎn)生相同的列名,如id 和 name 先用表stu中的一行數(shù)據(jù)和表class中的每一行數(shù)據(jù)不斷的拼接,產(chǎn)生新的行 再用表stu的第二行去和表class中的每一行數(shù)據(jù)拼接,以此類推 表stu是3行,表class是2行,所以按照上面的規(guī)律會產(chǎn)成3*2 = 6行的新的表 on的用法:添加約束 一般我們join后的表,并不是我們想要的,這時(shí),可以用 ON 來加一些條件:
例如:stu join class on classid = class.id ,on后面就是我們加的條件,我們想要classid這一列數(shù)據(jù)和id這一列的數(shù)據(jù)相等的數(shù)據(jù),這里注意一下,join后的表列名是有重復(fù)的,所以O(shè)N后面的條件語句中我們要加上原來的表名。例如這里:classid = class.id,由于id有兩列,這里我們是要表class中的id,所是是class.id。
所以: 執(zhí)行:stu join class on classid = class.id 后,表變?yōu)椋?br /> mysql中join和on怎么用 小提示:當(dāng)只有join時(shí),其后面的on可以用where替換;
在數(shù)據(jù)庫中驗(yàn)證: mysql -u root -p # 登錄數(shù)據(jù)庫,輸入密碼 CREATE DATABASE new; # 創(chuàng)建數(shù)據(jù)庫new use new; # 使用這個(gè)數(shù)據(jù)庫 CREATE TABLE stu(id int primary key,name char(10),classid int)default charset = utf8mb4; # 創(chuàng)建表stu INSERT INTO stu (id,name,classid)VALUES(1,'A',1),(2,'B',1),(3,"C",2); # 插入數(shù)據(jù) SELET * FROM stu;
CREATE TABLE class(id int primary key,name char(10),teacher char(10))default charset = utf8mb4; # 創(chuàng)建表class INSERT INTO class (id,name,teacher)VALUES(1,'實(shí)驗(yàn)班',"小紅"),(2,'普通班',"小藍(lán)"); # 插入數(shù)據(jù) SELECT * FROM class;
SELECT * FROM stu join class; # 用join連接兩個(gè)表
SELECT * FROM stu join class ON classid = class.id; # 用on來添加條件