SQL多表微分联合查询问题的详细解决方案
主要叙述之一
从A,B,C选择A,B,B,C
和
选择A,B,C从表内和表B的数据内张=
差异
最近的一个项目需要一个页面集合来显示关于三个关联表的信息。
因为实际项目中有更多的字段,所以现在简化如下:
表包含字段的用户名,CardCode,ItamCode
表B中包含的领域cardcode,CardName
表C包含字段itamcode,ItamName
界面需要用户名,cardname,在数据集的同时itamname
换句话说,尽管我们了解了SQL内联和扩展的问题,但所有以前的项目基本上都与两个表的实现有关。现在是第一次使用两个以上的表来实现相关性。在找了一点百度的资料后,发现基本原理都是一样的。呵呵,我去年进之前,没有经验,大神,请不要嘲笑我!
那么,如果读者不熟悉SQL的基本内联,了解外联,请自觉地找到百度墙到哈萨克斯坦,在这里我不熬出来了。总之,到现在为止……
实现上述功能有两种方式,分别是
选择a.username,b.cardname,C.ItamName从A,B,C
和
选择a.username,b.cardname,C.ItamName从表内加入表B a.cardcode = b.cardcode内
(如果字段不一样,您可以稍微写表名)
上面的语法,其实两种方法的实现效果是一样的,但是如果你真的想认真对待第二种方法的优点,还是比较实用的。
通过内部连接(完全扩展)的编写方法,它不仅可以自由地改变左连接(左)和右连接(右外接),而且还可以表示组合的顺序,特别是支持sql优化的便利性。
另一个原因是,当我的一个字段可以为空,第一个查询的方法的价值实际上是不完整的。例如,当itanname时不需要表,我在上面的例子中,只在左外连接(左连接)来达到我们预期的效果。
感兴趣的学生可以自己操作,以验证这两种方法的不同之处。