mysql連接查詢中and與where的區(qū)別淺析
1. 建表
CREATE TABLE `student` ( `id` int(11) NOT NULL, `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `age` int(11) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; INSERT INTO `student` VALUES (1, '張三', 12); INSERT INTO `student` VALUES (2, '李四', 12); INSERT INTO `student` VALUES (3, '王五', 12); INSERT INTO `student` VALUES (4, '趙六', 12); INSERT INTO `student` VALUES (5, '孫七', 12); INSERT INTO `student` VALUES (6, '王八', 12);
CREATE TABLE `grade` ( `id` int(11) NOT NULL, `sid` int(11) NULL DEFAULT NULL, `grade` int(11) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; INSERT INTO `grade` VALUES (1, 1, 100); INSERT INTO `grade` VALUES (2, 2, 80); INSERT INTO `grade` VALUES (3, 3, 99); INSERT INTO `grade` VALUES (4, 4, 66);
2. inner join-內(nèi)連接
內(nèi)連接中and和where沒(méi)有區(qū)別,都是取連接后的結(jié)果進(jìn)行條件篩選。
2.1 不加條件
2.2 and 條件
2.3 where 條件
3. left join - 左外連接
3.1 不加條件
3.2 and 條件
left join中以左表全匹配進(jìn)行連接,之后使用and進(jìn)行篩選;不符合條件的左表數(shù)據(jù)保留,右表數(shù)據(jù)為null。
3.3 where 條件
在left join 中以左表全匹配進(jìn)行連接,之后以where進(jìn)行篩選;只篩選符合條件的數(shù)據(jù)。
4. right join
同3中l(wèi)eft join,只是基表相反。
5. 總結(jié)
- 所有連接,使用where是對(duì)連接后符合條件的數(shù)據(jù)行進(jìn)行再次的條件篩選,只保留符合條件的數(shù)據(jù)行;
- left join連接時(shí),使用and以左表為主,左表數(shù)據(jù)全部保留,不符合條件的數(shù)據(jù)行右表數(shù)據(jù)為null;
- right join連接時(shí),使用and以右表為主,右表數(shù)據(jù)全部保留,不符合條件的數(shù)據(jù)行左表數(shù)據(jù)為null;
到此這篇關(guān)于mysql連接查詢中and與where區(qū)別的文章就介紹到這了,更多相關(guān)mysql連接查詢and與where內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySql連接查詢方式詳解
- mysql連接查詢?cè)斀?/a>
- MySQL連接查詢你真的學(xué)會(huì)了嗎?
- mysql連接查詢、聯(lián)合查詢、子查詢?cè)砼c用法實(shí)例詳解
- MySQL連接查詢實(shí)例詳解
- mysql連接查詢(左連接,右連接,內(nèi)連接)
- 經(jīng)典mysql連接查詢例題
- mysql子查詢(單行子查詢,多行子查詢,多列子查詢)
- 一文了解MySQL的四大子查詢
- MySQL子查詢的使用詳解下篇
- MySQL子查詢的使用詳解上篇
- Mysql子查詢關(guān)鍵字的使用方式(exists)
- MySQL多表聯(lián)合查詢、連接查詢、子查詢的實(shí)現(xiàn)
相關(guān)文章
mysql sql99語(yǔ)法 內(nèi)連接非等值連接詳解
在本篇文章里小編給大家整理的是一篇關(guān)于mysql sql99語(yǔ)法 內(nèi)連接非等值連接的相關(guān)知識(shí)點(diǎn)文章,有需要的朋友們可以學(xué)習(xí)下。2019-09-09詳解Mysql導(dǎo)出數(shù)據(jù)的幾種方式
MySQL導(dǎo)出數(shù)據(jù)的目的有很多種,如數(shù)據(jù)庫(kù)備份、表結(jié)構(gòu)導(dǎo)出、表數(shù)據(jù)導(dǎo)出、分析數(shù)據(jù)采取等,本文詳細(xì)的介紹了兩種Mysql導(dǎo)出數(shù)據(jù)的方法,感興趣的小伙伴可以了解一下2018-10-10MySql數(shù)據(jù)分區(qū)操作之新增分區(qū)操作
這篇文章主要介紹了MySql數(shù)據(jù)分區(qū)操作之新增分區(qū)操作,本文講解了測(cè)試創(chuàng)建分區(qū)表文件、插入測(cè)試數(shù)據(jù)、查詢P2中的數(shù)據(jù)等內(nèi)容,需要的朋友可以參考下2015-03-03MySQL用命令行運(yùn)行sql文件的詳細(xì)圖文教程
最近重新踩了一下mysql 這邊的坑,記錄一下自己忽略的地方,下面這篇文章主要給大家介紹了關(guān)于MySQL用命令行運(yùn)行sql文件的詳細(xì)圖文教程,文中通過(guò)實(shí)例代碼的非常詳細(xì),需要的朋友可以參考下2023-01-01