Dapper多表查询时子表字段为空

最近在学习使用Dapper时百度了一篇详细使用教程,在做到多表查询的时候,出现如下情况。

使用的SQL如下,

1 SELECT *
2 FROM [Student] AS A
3 inner JOIN [Junior] AS B ON B.ID=A.JuniorId

随后以为是自己写错了,查了好多地方没有找到原因。后来找了大神一线码农的关于Dapper的文章中提到了spliton的概念,其中讲述了关于Dapper如何获取实体的描述(如下这图所示),才知道了有可能是字段顺序出了问题。

随后发现ID出现了最后一列,是由于当初在创建各个表的时候ID没有设置自增,随后又把列给删了后重新使用 “alter table 表 add 列 int IDENTITY(1,1) NOT NULL” 新增了自增列。

      

随后,将查询条件给成如下结果才解决了这个问题。

1 SELECT a.ID,a.SID,a.Name,a.JuniorId,b.ID,b.Code,b.Name
2 FROM [Student] AS A
3 inner JOIN [Junior] AS B ON B.ID=A.JuniorId

这个问题确实比较简单,出现的时候找了好久,记录下来也给自己一个提醒。

文中参考链接:

https://ithelp.ithome.com.tw/articles/10198210?sc=rss.qu

https://www.cnblogs.com/huangxincheng/p/5832281.html

原文地址:https://www.cnblogs.com/albertzhg/p/9486247.html

时间: 2024-10-19 11:27:58

Dapper多表查询时子表字段为空的相关文章

Mysql数据库理论基础之五--SELECT单多表查询、子查询、别名

一.简介 由MySQL AB公司开发,是最流行的开放源码SQL数据库管理系统,主要特点: 1.是一种数据库管理系统 2.是一种关联数据库管理系统 3.是一种开放源码软件,且有大量可用的共享MySQL软件 4.MySQL数据库服务器具有快速.可靠和易于使用的特点 5.MySQL服务器工作在客户端/服务器模式下,或嵌入式系统中 InnoDB存储引擎将InnoDB表保存在一个表空间内,该表空间可由数个文件创建.这样,表的大小就能超过单独文件的最大容量.表空间可包括原始磁盘分区,从而使得很大的表成为可能

#4 SQL 多表查询、子查询

今天讲了一个SQL的多表查询和子查询 笔记里面有挺多有用的图片,重要是为了方便了解外连接和内连接,还有自连接等... 这里显示不出来,所以放一个链接, 到有道云笔记去看:http://note.youdao.com/share/?id=90f107b6a6aac379a795373f7f98c6ff&type=note 多表查询和子查询的关系? 多表查询可以做到的,子查询都可以做到,子查询思路比较符合正常人的思路,但是代码稍微长一点 多表查询 |--内部链接查询 : select * from

MySQL 外连接、内连接,连接查询、多表查询、子查询、视图

MySQL连接查询.多表查询.子查询: 连接查询:事先将两张或多张表join,根据join的结果进行查询: [导入hellodb.sql数据库],输入密码即可 [[email protected] home]# mysql -uroot -p  mydb < /home/hellodb.sql     hellodb.sql数据库下载链接:http://pan.baidu.com/s/1pJKK4w7 密码:a0re [查看students表] mysql> select * from stu

MySQL的约束、多表查询、子查询

一.约束之主键约束 约束:约束是添加在列上的,用来约束列的. 1.主键约束(唯一标识):非空.唯一.被引用 当表的某一列被指定为主键后,该类就不能为空,不能有重复值出现 创建表时指定主键的两种方式: CREATE TABLE stu( sid CHAR(6) PRIMARY KEY, sname VARCHAR(20), age INT, sex VARCHEAR(10) ); CREATE TABLE stu( sid CHAR(6) , sname VARCHAR(20), age INT,

数据库SQL Server2012笔记(四)——多表查询、子查询、分页查询、用查询结果创建新表和外连接

1.多表查询 1)笛卡尔集: select  *  from  表名1,表名2 select  *  from  表名1,表名2  where   表名1.字段名=表名2.字段名 注: 若有两张表有相同名字的字段,则使用时需带表名(别名). order  by  置于where 条件之后. 2)自连接:同一张表的连接查询,将一张表视为两张表或多张表. eg:显示公司每个员工名字和他的上级的名字.将emp表看做两张表worker和boss select  worker.ename  雇员,boss

oracle学习之多表查询,子查询以及事务处理

多表查询的基础是采用笛卡尔集: 最终的行数 = 表1的行数 * 表2的行数 最终的列数 = 表1的列数 + 表2的列数 过滤笛卡尔集的关键是写连接条件,N张表至少需要N-1个条件. 多表查询例子1,等值与不等值连接,查询员工信息,员工号,姓名,月薪 和部门名称 注意,有歧义的字段必须指定是哪个表,否则将会报错. 当等值连接不成立的时候,想要保留一边的数据,这时需要使用外连接技术! 左外连接的写法,即想保留等号左边的数据,那么在等号右侧添加(+) 自连接,比如查询员工信息,显示为:xxx's bo

04 数据库入门学习-单表查询、多表查询、子查询

1.复制表 #创建了一张测试表 mysql>create table test (id int primary key auto_increment,name char(10)); #显示原表结构 mysql> desc test; +-------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+---

oracle中的多表查询和子查询以及一些注意事项

多表查询就是使用两张表及其以上的查询.首先需要知道几个名词,笛卡尔积,内连接,外连接,子查询. 1)笛卡尔积 所谓笛卡尔积其实就是两张表数据的条数相乘得到的最后结果,例如表1有10条数据,表2有4条数据,那么经过笛卡尔积之后最后的结果为40条数据,使用笛卡尔积缺点比较多,会产生很多没有用的数据. 2)内连接 内连接分为隐式和显示两种,显示就是使用inner join关键字,而隐式就是使用where关键字,根据关联字段建立的条件,例如where t1.id=t2.id 这就是隐式. 3)外连接 外

单表查询、多表查询和子查询

查询语句: select SELECT-LIST from  TB where QYAKUDUCATION; 简单查询: select * from TB_NAME; select FIED1,FIED2 from TB_NAME; 投影 select [distinct] * from TB_NAME where QYAKUDUCATION;选择  #distinct重复的值只显示一次 from子句:要查询的关系   表,多个表,其他的select语句 where子句:指定布尔关系表达式, =