zoukankan      html  css  js  c++  java
  • 多表查询视图显示外键为空的字段 Fred

    项目中遇到的一个问题:A、B表有主外键关系,假设B表的BID是A表AID的外键,如果B表有记录的BID是空的话,单查B表是能查出这两条记录,可查A、B表连接后的视图的时候,由于BID和AID是主外键关系,BID为空的时候,记录就不显示了。
    现在要实现无论字段是不是NULL,都要查询出来,并在GridView中显示。

    视图查询器默认的是用的INNER JOIN 所以这种模式是无法显示出来的,应该用LEFT JOIN。
    下面是SQL多表连接的详细介绍:

    内联接(典型的联接运算,使用像   =   或   <>   之类的比较运算符)。包括相等联接和自然联接。    
      内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索   students   和   courses   表中学生标识号相同的所有行。  
        
      外联接。外联接可以是左向外联接、右向外联接或完整外部联接。    
      在   FROM   子句中指定外联接时,可以由下列几组关键字中的一组指定:  
        
      LEFT   JOIN   或   LEFT   OUTER   JOIN。    
      左向外联接的结果集包括   LEFT   OUTER   子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。  
        
      RIGHT   JOIN   或   RIGHT   OUTER   JOIN。    
      右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。  
        
      FULL   JOIN   或   FULL   OUTER   JOIN。    
      完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

    感谢微软MVP小灰给与的指导!
  • 相关阅读:
    第17章—前端分页(Bootstrap-Table)
    第16章—日志(slf4j&logback)
    第15章—数据库连接池(DBCP2)
    第14章—数据库连接池(C3P0)
    第13章—数据库连接池(Druid)
    第00章—IDEA
    第12章—整合Redis
    第11章—常用注解(持续更新中)
    获取图片的宽高
    button按钮文字超出范围后省略号位置设置
  • 原文地址:https://www.cnblogs.com/Fred_Xu/p/1523189.html
Copyright © 2011-2022 走看看