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小灰给与的指导!
  • 相关阅读:
    高可用、高并发浅析
    正则表达式笔记
    linux下通过脚本切换当前工作目录
    nginx学习笔记
    二进制安全
    负载均衡相关
    有用的shell命令
    TCP服务器/客户端代码示例
    UDP服务器/客户端代码示例
    GCC链接的几个注意点
  • 原文地址:https://www.cnblogs.com/Fred_Xu/p/1523189.html
Copyright © 2011-2022 走看看