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小灰给与的指导!
  • 相关阅读:
    Handlebars.js循环中索引(@index)使用技巧(访问父级索引)
    Nutz Dao实体中索引注解的使用(@TableIndexes@Index)
    清爽绿色格调图文box通用样式
    用dom操作替代正则表达式
    简洁清新的box样式
    Sale.js——快速创建促销样式
    BlueDream.js(蓝梦)——jQuery网站使用引导插件
    拉勾网ThoughtWorks面试题代码实现
    (转)设计模式六大原则(6):开闭原则
    (转)设计模式六大原则(3):依赖倒置原则
  • 原文地址:https://www.cnblogs.com/Fred_Xu/p/1523189.html
Copyright © 2011-2022 走看看