SQL里 inner JOIN、 left (OUTER) JOIN 、right…
2018-06-17 23:39:36来源:未知 阅读 ()
SQL里 inner JOIN、 left (OUTER) JOIN 、right (OUTER) JOIN、 full (OUTER) JOIN 之间的区别 /* 直接上例子废话不多说 此例子里两张表之间相等的都是各自的主键 然而大部分情况下是A表的主键和B表里的外键相等, 所以就会存在B表里多行记录匹配A表里的一行记录 这里仅做例子 */
/* 在写连接查询的时候,ON后面只跟连接条件,而对中间表限制的条件都写到WHERE子句中。
*/ A表(aID,aCourse,aGrade) | B表(bID,bName) aID aCourse aGrade | bID bName 01 数学 95 | 01 张三 02 语文 90 | 02 李四 03 英语 80 | 04 王五 -- inner join(等值连接取交集) 只返回两个表中联结字段相等的行 SELECT a.*,b.* FROM A a INNER JOIN B b ON a.aID = b.bID; -- a.*,b.* 可用 * 替代,INNER JOIN中间没有OUTER
SELECT a.*,b.* FROM A a , B b WHERE a.aID = b.bID; --INNER JOIN 的简写,效果等同 -- 结果集: aID aCourse aGrade bID bName 01 数学 95 01 张三 02 语文 90 02 李四 -- left join(左联接) 返回包括左表中的所有记录以及左表与右表中联结字段相等的记录 SELECT * FROM A a LEFT OUTER JOIN B b ON a.aID = b.bID; -- OUTER可省略 -- 结果集:B表记录不足的地方均为NULL aID aCourse aGrade bID bName 01 数学 95 01 张三 02 语文 90 02 李四 03 英语 80 NULL NULL --right join(右联接) 返回包括右表中的所有记录以及右边与左表中联结字段相等的记录 SELECT * FROM A a RIGHT JOIN B b ON a.aID = b.bID;-- OUTER省略 -- 结果集:A表记录不足的地方均为NULL aID aCourse aGrade bID bName 01 数学 95 01 张三 02 语文 90 02 李四 NULL NULL NULL 04 王五 -- full JOIN(全连接) 返回包括A,B表中的所有记录 SELECT * FROM A a FULL JOIN B b ON a.aID = b.bID;---- OUTER省略 结果集:A、B表记录不足的地方均为NULL aID aCourse aGrade bID bName 01 数学 95 01 张三 02 语文 90 02 李四 03 英语 80 NULL NULL NULL NULL NULL 04 王五 注意:MySQL Full Join的实现 因为MySQL不支持FULL JOIN,下面是替代方法 LEFT JOIN + UNION(可去除重复数据)+ RIGHT JOIN select * from A left join B on A.id = B.id (where 条件) union select * from A right join B on A.id = B.id (where条件); 上述全连接就可以在MYSQL中就可以替换成以下: SELECT * FROM A a LEFT OUTER JOIN B b ON a.aID = b.bID UNION SELECT * FROM A a RIGHT JOIN B b ON a.aID = b.bID
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- MySQL replace函数怎么替换字符串语句 2020-03-09
- PHP访问MySQL查询超时怎么办 2020-03-09
- mysql登录时闪退 2020-02-27
- MySQL出现1067错误号 2020-02-27
- mysql7.x如何单独安装mysql 2020-02-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash