多表查询视图显示外键为空的字段
2009-07-14 13:29
274 查看
项目中遇到的一个问题: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小灰给与的指导!
现在要实现无论字段是不是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小灰给与的指导!
相关文章推荐
- 小猫统计:以视图为基础进行定制查询,查询结果显示中文字段名
- sql 查询表/视图字段、字段类型、字段长度
- 转——查询同字段相同记录大于或等于1的记录,并每一类只显示一个的查询
- 小猫统计:对于固定值字段,查询时可以显示中文,亦可以显示代码
- oracle 中文字段查询后结果集标题显示为"???"
- 2006-4-21 ASP 判断 URL 查询字段, 显示相关内容 by Stabx
- sqlserver数据库创建视图时如何改变字段类型以及查询视图详细内容
- Microsoft SQLServer 2005查询表字段的几个视图含义
- GP中查询表和视图清单,视图的字段及其类型
- Oracle中查询表字段基本信息、主键、外键(整理)
- SqlServer 查询包含A字段的所有 表和视图
- 如何在sql/plus中把select语句查询显示出来的结果中的显示字段长度缩小
- 利用C#查询视图字段基于基表的字段
- SQL 查询业务库_SQL 查询数据字典_sql查询表结构,过程,视图,主键,外键,约束
- hive查询如何显示查询的字段
- hive查询如何显示查询的字段
- 可在任何一个表(或视图)中按任何一个字段值进行查询的通用存储过程(精确查询)
- ssm框架 里面查询列表,显示出来有字段漏掉(或者说少显示)
- Mongodb 3.4 Java 显示指定字段、 条件查询 官方手册
- sqlserver -- 学习笔记(三)解决php连接sqlserver2005视图时显示“异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项”的问题