随机记录工作中常见的sql用法错误(一)
没事开始写博客,留下以前工作中常用的笔记,内容不全或者需要补充的可以留言,我只写我常用的。
网上很多类似动软生成器的小工具,这类工具虽然在表关系复杂的时候没什么软用,但是在一些简单的表结构关系还是很方便的。想起以前开始工作的时候经常犯的错误。
现在就写个简单的错误,大神可能一眼就看出来了,不过新手需要了解一下的。
Create table UC_counter
{
id INT IDENTITY(1, 1) PRIMARY KEY,
memberid int
}
Create table UC_member
{
id int ,
name nvarchar(50) ,
}
不讨论这个表设计的合不合理,UC_counter的memberid 关联的是UC_member的id
select (select top 1 name from UC_member a where a.memberid = id ) from UC_counter
很多代码生成器查出数据时类似 select * from UC_counter的语句,自己只需输入查出条件 ,查出内容(用过的应该知道,就不仔细说了),
上面那段代码时想查出对应UC_member的那么字段, 不过会失望的。
上面那段代码的可以翻译成
select (select top 1 name from UC_member a where a.memberid = a.id ) from UC_counter
所以我会加个top 1,因为这样子查询可能会多条数据报错,多个字段相同服务器辨别不出来,找寻的是最近一个表字段,
正确的写法:select (select top 1 name from UC_member a where a.memberid = b.id ) from UC_counter b
但是代码生成器怎么可能给你在表后面加别名,所以推荐那些想用代码生成工具的人,建表的时候,表关系相连的表对应字段名称最好不同
Create table UC_counter
{
id INT IDENTITY(1, 1) PRIMARY KEY,
memberid int
}
Create table UC_member
{
Mid int ,
name nvarchar(50) ,
}
select (select top 1 name from UC_member a where a.memberid = Mid ) from UC_counter
这么用的话就没问题,这是突然想起来的问题,希望对不熟悉的人有帮助,以前纯属手打,写的不够详细,可以留言。
随机记录工作中常见的sql用法错误(一)的更多相关文章
- 个人工作记录---工作中遇到的sql查询语句解析
在工作中写了人生的第一个查询语句,虽然是在原有基础上改的,但仍然学到了不少知识 代码: select distinct m.id, (select z.jianc from model_zuzjg z ...
- 记录工作中遇到的BUG,经典的数据库时区问题和字段类型tinyint(1)问题
记录工作中发现的相对而言经典的问题 [数据库时区问题] 我个人数据库配置为CST 如下 我们测试环境的数据库配置为UTC 如下 倘若我修改了测试环境数据库时区为CST.由此造成的问题是 系统读取到数据 ...
- 总结工作中常见的linux命令
本文是总结下自己在工作中遇到的常见linux 命令,会持续更新! 1.文件路径切换 进入 cd 返回上一级 cd .. 2.复制 cp 源文件名 目标文件夹 cp log.log test5 3.编 ...
- (办公)mybatis工作中常见的问题(不定时更新)
1.mybatis的like查询的方式. <if test="shopName != null and shopName != ''"> <bind name=& ...
- css布局 - 工作中常见的两栏布局案例及分析
突然想到要整理这么一篇平时工作中相当常见但是我们又很忽视的布局的多种处理方法.临时就在我经常浏览的网站上抓的相对应的截图.(以后看到其他类型的我再补充) 既然截了图,咱们就直接看人家使用的布局方式,毕 ...
- 记录工作中groovy动态生成Flink任务
工作中的痛点:有一个计算的任务,需要配置成前端配置好一些简单的信息,例如名字,计算间隔,计算规则(这个是需要提前写好,开放给用户选择的),然后通过提交到我们的计算引擎中心生成对应的任务jar包提交到服 ...
- js--前端开发工作中常见的时间处理问题
前言 在前端开发工作中,服务端返回的时间数据或者你传递给服务端的时间参数经常会遇到时间格式转换及处理问题.这里分享一些我收集到的一些处理方法,方便日后工作中快速找到.先附上必须了解的知识内置对象传送门 ...
- 工作中常见的五种技术leader
力不从心型 在工作中有种技术leader,总认为自己是最好的.在方案设计的时候,自己有一种方案,下属有一种方案.leader非要别人听他的.如果两种方案没有优劣之分,比较建议的做法是让真正实施的人按照 ...
- git工作中最常用的用法教程,不走命令行
·1.1 git的概述 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Lin ...
随机推荐
- ABP创建数据库操作步骤
1 ABP创建数据库操作步骤 1.1 SimpleTaskSystem.Web项目中的Web.config文件修改数据库配置. <add name="Default" pro ...
- 体验报告:微信小程序在安卓机和苹果机上的区别
很多人可能会问:微信小程序和在微信里面浏览一个网页有什么区别? 首先,小程序的运行是全屏的,界面跟进入了一个APP很像,更为沉浸跟在微信里面访问h5不一样:其次,它的浏览体验更为稳定. 不过,这还不够 ...
- 似懂非懂的localStorage和sessionStorage
一.区别 相信很多人都见过这两个关于HTML5的新名词!HTML5种的web storage包含两种存储方式:localStorage和sessionStorage,这两种方式存储的数据不会自动发给服 ...
- PostGIS(解压版)安装
1.软件下载 postgresql-9.6.1-1-windows-x64-binaries.zip https://www.postgresql.org/download/windows/ post ...
- T-SQL 拆分使用指定分隔符的字符串(split string)
比如有一个表,我们需要些一个语句像SELECT OtherID, SplitData WHERE SomeID = 'abcdef-.......' , 然后就能返回分割成单独的行. 原表: | So ...
- JavaScript单线程和浏览器事件循环简述
JavaScript单线程 在上篇博客<Promise的前世今生和妙用技巧>的开篇中,我们曾简述了JavaScript的单线程机制和浏览器的事件模型.应很多网友的回复,在这篇文章中将继续展 ...
- 如何安装一个优秀的BUG管理平台——真的是手把手教学!
前言 就BUG管理而言,国内的禅道做得很不错,而且持续有更新.我们来看看如何从头到尾安装禅道,各位要注意的是,不是文章深或者浅,而是文章如何在遇到问题的时候,从什么途径和用什么方法解决问题的.现在发觉 ...
- CSS 实现打字效果
JS实现 最近做项目的时候需要实现一个字符逐个出现的打字效果,在网上一搜有个不错的jQuery插件Typed.js,效果很赞 <div class="element"> ...
- Objective-C 生成器模式 -- 简单实用和说明
1.生成器模式的定义 将一个复杂的对象的构件与它的表示分离,使得同样的构建过程可以创建不同的表示 2.生成器模式的UML Builder :生成器接口,定义创建一个Product各个部件的操作 Con ...
- 深入浅出Java三大框架SSH与MVC的设计模式
现在许许多多的初学者和程序员,都在趋之若鹜地学习Web开发的宝典级框架:Struts2,Spring,Hibernate.似乎这些框架成为了一个人是否精通Java,是否会写J2EE程序的唯一事实标准和 ...