当前位置: 首页 > news >正文

烟台网站制作策划/营销型网站设计制作

烟台网站制作策划,营销型网站设计制作,各种网站名称大全,如何提升做网站的效率2019独角兽企业重金招聘Python工程师标准>>> join的类型 1. 内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。 2. 外联结:分为外左联结和外右联结。 案例背景 create table java (…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

join的类型

1.  内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。

2.  外联结:分为外左联结和外右联结。

 

案例背景

复制代码
create table java (name varchar(255)); insert into java values ('java1'),('java2'),('blue'); create table mysql (name varchar(255)); insert into mysql values ('mysql1'),('mysql2'),('blue');
复制代码

 

内联结

复制代码
select * from java,mysql where java.name=mysql.name; SELECT * FROM java JOIN mysql ON java.name=mysql.name; SELECT * FROM java INNER JOIN mysql ON java.name=mysql.name; SELECT * FROM java CROSS JOIN mysql ON java.name=mysql.name; SELECT * FROM java  STRAIGHT_JOIN  mysql ON java.name=mysql.name;
复制代码

这四个语句都是内联结,返回结果都是

复制代码
+------+------+ | name | name | +------+------+ | blue | blue | +------+------+
复制代码
  • table_reference条目中的每个逗号都看作相当于一个内部联合
  • 默认的JOIN都是INNER JOIN
  • CROSS JOIN从语法上说与INNER JOIN等同
  • STRAIGHT_JOINJOIN相同。除了有一点不一样,左表会在右表之前被读取。STRAIGH_JOIN可以被用于这样的情况,即联合优化符以错误的顺序排列表。

内联结的语法如下:

复制代码
join_table:table_reference [INNER | CROSS] JOIN table_factor [join_condition] | table_reference STRAIGHT_JOIN table_factor | table_reference STRAIGHT_JOIN table_factor ON condition
复制代码

 

外联结

左联结

复制代码
SELECT * FROM java LEFT JOIN mysql ON java.name=mysql.name;
复制代码

结果是

复制代码
+-------+------+ | name | name | +-------+------+ | java1 | NULL | | java2 | NULL | | blue | blue | +-------+------+
复制代码

所以从上面结果看出,因为java表中的java1和java2记录的name没有在mysql表中有对应name,因此为空,但java 所有的列栏仍有java1和java2记录,mysql表所有列栏为NULL。而剩下的blue的那条记录就是java表和mysql表内连接的结果。

 

如果对于在LEFT JOIN中的ONUSING部分中的右表没有匹配的记录,则所有列被设置为NULL的一个行被用于右表。如果一个表在其它表中没有对应部分,您可以使用这种方法在这种表中查找记录:

复制代码
SELECT * FROM java LEFT JOIN mysql ON java.name=mysql.name WHERE mysql.name IS NULL;
复制代码

该sql找出在java的人,但是不在mysql里的人,这里明显是人员'java1'和'java2'符合要求。

 

右联结

复制代码
SELECT * FROM java RIGHT JOIN mysql ON java.name=mysql.name;
复制代码

返回结果是

复制代码
+------+--------+ | name | name | +------+--------+ | NULL | mysql1 | | NULL | mysql2 | | blue | blue | +------+--------+
复制代码

右联结和左联接结果类似,只是这次是mysql表保存所有的结果集。

外联结的语法

复制代码
join_table:| table_reference LEFT [OUTER] JOIN table_reference join_condition | table_reference NATURAL [LEFT [OUTER]] JOIN table_factor | table_reference RIGHT [OUTER] JOIN table_reference join_condition | table_reference NATURAL [RIGHT [OUTER]] JOIN table_factor
复制代码

 

USING(column_list)子句

用于为一系列的列进行命名,这些列必须同时在两个表中存在

复制代码
SELECT java.*,mysql.* FROM java LEFT JOIN mysql USING (name);
复制代码

结果返回

复制代码
+-------+------+ | name | name | +-------+------+ | java1 | NULL | | java2 | NULL | | blue | blue | +-------+------+
复制代码

 

联结的运算顺序

复制代码
SELECT * FROM t1 LEFT JOIN (t2, t3, t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c); --相当于 SELECT * FROM t1 LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)
复制代码

括号对于join的顺序的影响

复制代码
SELECT t1.id,t2.id,t3.id FROM t1,t2 LEFT JOIN t3 ON (t3.id=t1.id) WHERE t1.id=t2.id; --实际上这么执行 SELECT t1.id,t2.id,t3.id FROM t1,(  t2 LEFT JOIN t3 ON (t3.id=t1.id)  ) WHERE t1.id=t2.id; --应该这么写 SELECT t1.id,t2.id,t3.id FROM (t1,t2) LEFT JOIN t3 ON (t3.id=t1.id) WHERE t1.id=t2.id;
复制代码

在这里括号是相当重要的,因此以后在写这样的查询的时候我们不要忘记了多写几个括号,至少这样能避免很多错误

转载于:https://my.oschina.net/u/245046/blog/153178

http://www.jmfq.cn/news/5082643.html

相关文章:

  • 海外代购网站怎么做/常见的网站推广方式
  • 河北高端网站建设/运营是做什么的
  • 如何做公众号小说网站赚钱/直通车怎么开
  • 做网站的公司多少钱/福建seo推广方案
  • 政府网站建设如何做/北京seo相关
  • 网站建设 商城/免费友情链接
  • 西安本地十家做网站建设的公司/营销型网站定制
  • 网站群建设项目招标公告/网络营销的缺点及建议
  • 汕头网站设计制作公司/链接下载
  • 中国铁建华南建设有限公司网站/深圳疫情防控最新消息
  • 如何做自己的在线作品网站/百度怎么发免费广告
  • 做网站认证违法吗/免费网页制作平台
  • 网站申请注册 免备案/加强服务保障 满足群众急需需求
  • 建设企业网站模板/免费下载百度到桌面
  • 高端网站建设方案报价/seo俱乐部
  • 漳州网站建设哪家好/发文章用哪个平台比较好
  • 一般网站的后台怎么做的/站长工具日本
  • mac上如何使用wordpress/整站优化seo平台
  • 做网站交易平台/pc网站建设和推广
  • 9元包邮网站怎么做/最新国际新闻 大事件
  • 陕西省住房和城乡建设厅官网查询/移投界seo
  • 网站推广 软件/专业做加盟推广的公司
  • 桂林市地图全图高清版/武汉标兵seo
  • 怎样做网站后台/优化搜索引擎营销
  • 美女做羞羞的网站/搜索引擎推广法
  • 竞价网站同时做优化可以吗/百度app优化
  • 网站怎么做伪静态页面/网络推广 网站制作
  • 西安网站建设运维/广州seo关键词优化外包
  • 优质的南昌网站设计/郑州seo优化外包
  • 网站专题页面/客户管理软件哪个好用