加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL教程深入sql多表差异化联合查询的问题详解

发布时间:2020-12-12 02:41:55 所属栏目:MySql教程 来源:网络整理
导读:《MYSQL教程深入sql多表差异化联合查询的问题详解》要点: 本文介绍了MYSQL教程深入sql多表差异化联合查询的问题详解,希望对您有用。如果有疑问,可以联系我们。 MYSQL学习 本章简略讲述本人在实例开发中遇到的多表查询的问题 其中主要讲述 select A.*,B.*,

《MYSQL教程深入sql多表差异化联合查询的问题详解》要点:
本文介绍了MYSQL教程深入sql多表差异化联合查询的问题详解,希望对您有用。如果有疑问,可以联系我们。

MYSQL学习本章简略讲述本人在实例开发中遇到的多表查询的问题
其中主要讲述
select A.*,B.*,C.* from A,B,C

select A.*,C.* from 表A inner join 表B on A.id=B.id inner join 表C on A.code=C.code
的区别

MYSQL学习最近遇到一个这样的项目需求――要求页面集合显示三个关联表的信息.
由于实际项目里出现的字段比较多,现在简化说明如下:
table A 含有字段 UserName,CardCode,ItamCode
table B 含有字段 CardCode,CardName
table C 含有字段 ItamCode,ItamName

MYSQL学习其中界面要在一个数据集里同时出现UserName,CardName,ItamName
话说虽然学过SQL 内联,外联的问题,但是以前的项目基本出现的都是两个表的关联实现,现在是第一次用到超过两个表的关联实现问题.在百度找了一下资料,才发现原来基本原理是一样的.哈,本人去年才入职,经验不足,大神们,请别见笑哈!
呃,如果读者暂时还不熟悉SQL基本内联,外联的相关知识,请自觉找度娘面壁去哈,笔者在这里不熬述了.长话短说,现在进入正题……

MYSQL学习发现要实现上面的功能有两种办法,分别是
select A.UserName,B.CardName,C.ItamName from A,C

select A.UserName,C.ItamName from 表A inner join 表B on A.CardCode=B.CardCode inner join 表C on A.ItamCode=C.ItamCode
(如果字段是差异化的话,可以略写表名)

MYSQL学习就上面的语法来说,其实两种实现方法的效果是一样的,但如果真要较真细说优劣的话,还是第二种实现方法比较实用的.
用inner join(全外联)的写法,不仅可以依照实际需求自由转化left join(左外联)和right join(右外联),而且注明了结合的顺序,特别是支持了SQL文优化的方便.

MYSQL学习还有一个就是说当我某个字段可以为null的时候,第一种查询办法得出的值其实是不完全的.比如说我上面的例子中当table C 的ItanName 并非必填的时候,只能通过左外连接(left join)来实现我们需要的效果.
有兴趣的同学可以自己操作一下,验证下两种办法的不同.

欢迎参与《MYSQL教程深入sql多表差异化联合查询的问题详解》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读