SQL 连接(JOIN) - 菜鸟教程

文章推薦指數: 80 %
投票人數:10人

SQL 连接(JOIN) SQL join 用于把来自两个或多个表的行结合起来。

下图展示了LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的7 种用法。

SQL JOIN SQL JOIN 子句 ... 菜鸟教程--学的不仅是技术,更是梦想! 首页 HTML CSS JavaScript Vue Bootstrap NodeJS Python3 Python2 Java C C++ C# Go SQL Linux jQuery 本地书签 首页 HTML CSS JS 本地书签 Search Python3教程 Python2教程 Vue3教程 vue2教程 Bootstrap3教程 Bootstrap4教程 Bootstrap5教程 Bootstrap2教程 SQL教程 SQL教程 SQL简介 SQL语法 SQLSELECT SQLSELECTDISTINCT SQLWHERE SQLAND&OR SQLORDERBY SQLINSERTINTO SQLUPDATE SQLDELETE SQL高级教程 SQLSELECTTOP SQLLIKE SQL通配符 SQLIN SQLBETWEEN SQL别名 SQL连接(JOIN) SQLINNERJOIN SQLLEFTJOIN SQLRIGHTJOIN SQLFULLJOIN SQLUNION SQLSELECTINTO SQLINSERTINTOSELECT SQLCREATEDATABASE SQLCREATETABLE SQL约束 SQLNOTNULL SQLUNIQUE SQLPRIMARYKEY SQLFOREIGNKEY SQLCHECK SQLDEFAULT SQLCREATEINDEX SQLDROP SQLALTER SQLAutoIncrement SQL视图 SQL日期 SQLNULL值 SQLNULL函数 SQL通用数据类型 SQLDB数据类型 SQL函数 SQL函数 SQLAVG() SQLCOUNT() SQLFIRST() SQLLAST() SQLMAX() SQLMIN() SQLSUM() SQLGROUPBY SQLHAVING SQLEXISTS SQLUCASE() SQLLCASE() SQLMID() SQLLEN() SQLROUND() SQLNOW() SQLFORMAT() SQL快速参考 SQL主机 SQL总结 SQL别名 SQLINNERJOIN关键字 SQL连接(JOIN) SQLjoin用于把来自两个或多个表的行结合起来。

下图展示了LEFTJOIN、RIGHTJOIN、INNERJOIN、OUTERJOIN相关的7种用法。

SQLJOIN SQLJOIN子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。

最常见的JOIN类型:SQLINNERJOIN(简单的JOIN)。

SQLINNERJOIN从多个表中返回满足JOIN条件的所有行。

演示数据库 在本教程中,我们将使用RUNOOB样本数据库。

下面是选自"Websites"表的数据: +----+--------------+---------------------------+-------+---------+ |id|name|url|alexa|country| +----+--------------+---------------------------+-------+---------+ |1|Google|https://www.google.cm/|1|USA| |2|淘宝|https://www.taobao.com/|13|CN| |3|菜鸟教程|http://www.runoob.com/|4689|CN| |4|微博|http://weibo.com/|20|CN| |5|Facebook|https://www.facebook.com/|3|USA| |7|stackoverflow|http://stackoverflow.com/|0|IND| +----+---------------+---------------------------+-------+---------+ 下面是"access_log"网站访问记录表的数据: mysql>SELECT*FROMaccess_log; +-----+---------+-------+------------+ |aid|site_id|count|date| +-----+---------+-------+------------+ |1|1|45|2016-05-10| |2|3|100|2016-05-13| |3|1|230|2016-05-14| |4|2|10|2016-05-14| |5|5|205|2016-05-14| |6|4|13|2016-05-15| |7|3|220|2016-05-15| |8|5|545|2016-05-16| |9|3|201|2016-05-17| +-----+---------+-------+------------+ 9rowsinset(0.00sec) 请注意,"Websites"表中的"id"列指向"access_log"表中的字段"site_id"。

上面这两个表是通过"site_id"列联系起来的。

然后,如果我们运行下面的SQL语句(包含INNERJOIN): 实例 SELECTWebsites.id,Websites.name,access_log.count,access_log.dateFROM WebsitesINNERJOINaccess_logONWebsites.id=access_log.site_id; 执行以上SQL输出结果如下: 不同的SQLJOIN 在我们继续讲解实例之前,我们先列出您可以使用的不同的SQLJOIN类型: INNERJOIN:如果表中有至少一个匹配,则返回行 LEFTJOIN:即使右表中没有匹配,也从左表返回所有的行 RIGHTJOIN:即使左表中没有匹配,也从右表返回所有的行 FULLJOIN:只要其中一个表中存在匹配,则返回行 SQL别名 SQLINNERJOIN关键字 3篇笔记 写笔记 #0   Roam  275***[email protected]首先,连接的结果可以在逻辑上看作是由SELECT语句指定的列组成的新表。

左连接与右连接的左右指的是以两张表中的哪一张为基准,它们都是外连接。

外连接就好像是为非基准表添加了一行全为空值的万能行,用来与基准表中找不到匹配的行进行匹配。

假设两个没有空值的表进行左连接,左表是基准表,左表的所有行都出现在结果中,右表则可能因为无法与基准表匹配而出现是空值的字段。

这部分主要涉及的是表连接的逻辑问题,教程主讲语法的话这部分确实需要自己再去搜资料 来源:《数据库系统原理教程》,王珊,陈红编著,P86 Roam   Roam  275***[email protected]年前(2017-09-12) #0   悠闲的某某某  jim***[email protected]得到的结果数: innerjoin<=min(leftjoin,rightjoin) fulljoin>=max(leftjoin,rightjoin) 当innerjoinmax(leftjoin,rightjoin)悠闲的某某某   悠闲的某某某  jim***[email protected]年前(2018-05-03) #0   辣条  421***[email protected]暂不支持FULLJOIN,要实现完全外部链接需要额外处理。

--MySQL实现完全外部链接,要使用UNION将一个左链接、和一个右链接去重合并。

SELECTa.*,b.* FROM表1aLEFTJOIN表2b ONa.unit_NO=b.unit_NO UNION SELECTa.*,b.* FROM表1aRIGHTJOIN表2b ONa.unit_NO=b.unit_NO;辣条   辣条  421***[email protected]年前(2020-09-18) 点我分享笔记 取消 分享笔记 昵称昵称(必填) 邮箱邮箱(必填) 引用地址引用地址 分类导航 HTML/CSSHTML教程HTML5教程CSS教程CSS3教程Bootstrap3教程Bootstrap4教程Bootstrap5教程FontAwesome教程Foundation教程JavaScriptJavaScript教程HTMLDOM教程jQuery教程AngularJS教程AngularJS2教程Vue.js教程Vue3教程React教程TypeScript教程jQueryUI教程jQueryEasyUI教程Node.js教程AJAX教程JSON教程Echarts教程Highcharts教程Google地图教程服务端Python教程Python2.x教程Linux教程Docker教程Ruby教程Java教程C教程C++教程Perl教程Servlet教程JSP教程Lua教程Rust教程Scala教程Go教程PHP教程数据结构与算法Django教程Zookeeper教程设计模式正则表达式Maven教程Verilog教程ASP教程AppML教程VBScript教程数据库SQL教程MySQL教程PostgreSQL教程SQLite教程MongoDB教程Redis教程Memcached教程数据分析Python教程NumPy教程Pandas教程Matplotlib教程Scipy教程R教程Julia教程移动端Android教程Swift教程jQueryMobile教程ionic教程Kotlin教程XML教程XML教程DTD教程XMLDOM教程XSLT教程XPath教程XQuery教程XLink教程XPointer教程XMLSchema教程XSL-FO教程SVG教程ASP.NETASP.NET教程C#教程WebPages教程Razor教程MVC教程WebForms教程WebServiceWebService教程WSDL教程SOAP教程RSS教程RDF教程开发工具Eclipse教程Git教程Svn教程Markdown教程网站建设HTTP教程网站建设指南浏览器信息网站主机教程TCP/IP教程W3C教程网站品质 Advertisement 反馈/建议 在线实例 ·HTML实例 ·CSS实例 ·JavaScript实例 ·Ajax实例 ·jQuery实例 ·XML实例 ·Java实例 字符集&工具 ·HTML字符集设置 ·HTMLASCII字符集 ·JS混淆/加密 ·PNG/JPEG图片压缩 ·HTML拾色器 ·JSON格式化工具 ·随机数生成器 最新更新 · JavaScript获取... · JavaScript实现... · HTMLDOMstyle... · HTMLDOMscroll... · HTMLDOMscroll... · HTMLDOMscroll... · Dockerstats命令 站点信息 · 意见反馈 · 免责声明 · 关于我们 · 文章归档 关注微信 Copyright©2013-2022菜鸟教程  runoob.comAllRightsReserved.备案号:闽ICP备15012807号-1 微信关注



請為這篇文章評分?