多表查询视图显示外键为空的字段 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小灰给与的指导!
原文地址:https://www.cnblogs.com/Fred_Xu/p/1523189.html