mysql七种join理论
生活随笔
收集整理的這篇文章主要介紹了
mysql七种join理论
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
sql建表語句
CREATE TABLE `tbl_emp` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(22) DEFAULT NULL,`deptId` int(11) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8CREATE TABLE tbl_dep(id INT(11) NOT NULL AUTO_INCREMENT, deptName VARCHAR(22) DEFAULT NULL, addr VARCHAR(22) DEFAULT NULL, PRIMARY KEY(id) )ENGINE = INNODB DEFAULT CHARSET=utf8;插入數據
INSERT INTO tbl_dep(deptName,addr) VALUES('hr','111'); INSERT INTO tbl_dep(deptName,addr) VALUES('bd','112'); INSERT INTO tbl_dep(deptName,addr) VALUES('vb','113'); INSERT INTO tbl_dep(deptName,addr) VALUES('sd','114'); INSERT INTO tbl_dep(deptName,addr) VALUES('yy','115');INSERT INTO tbl_emp(`name`,deptId) VALUES('k8',1); INSERT INTO tbl_emp(`name`,deptId) VALUES('k6',2); INSERT INTO tbl_emp(`name`,deptId) VALUES('k4',3); INSERT INTO tbl_emp(`name`,deptId) VALUES('k4',11);? tbl_dep? ? ?tbl_emp
解釋上面七種情況
一、內連接(兩表的共有部分)
第一種是inner join,求的是兩個表中的相交部分。
二、左連接(左表的全部,右表不滿足補NULL)
第二種是left join ,求的是左表全部的部分。
三、右連接(右表的全部,左表不滿足的補NULL)
第三種是right join,求的是右表全部的部分。
?
四、特殊的左連接,(顯示為左表的獨有的數據)
五、特殊的右連接(顯示為右表的獨有的數據 )
六、全連接(顯示全部數據)(mysql 不支持 full outer join)
UNION :有去重的功能。
七、顯示兩表的獨有的數據
join其實就是迪卡爾積
?
總結
以上是生活随笔為你收集整理的mysql七种join理论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql sql执行加载顺序
- 下一篇: linux cmake编译源码,linu