031医疗项目-模块三:药品供应商目录模块——sql补充知识

这个补充知识有一个点很有必要,视屏上的老师提出一点:

内链接关联查询:

如果表A和表B有一个外键关联 ,可以通过外键进行内链接查询

select dictinfo.*, dicttype.typename

from dictinfo, dicttype

where dictinfo.typecode = dicttype.typecode

--不通过外键,通过groupid查询用户类型的代码结果集,只能查询出一条记录,可以使用内链接

select sysuser.*, dictinfo.info

from sysuser,

(select dictcode, typecode, info from dictinfo where typecode = ‘s01‘) dictinfo

where sysuser.groupid = dictinfo.dictcode

小结:如果主查询表字段从关联表只查询出一条记录,这个字段就可以作为内链接关联字段

--内链接的错误的例子,通过关联查询出重复记录

--使用groupidselect dictcode, typecode, info from dictinfo可以找到多个记录,不能使用内链接,可能会出现重复记录

select sysuser.*

from sysuser, (select dictcode, typecode, info from dictinfo) dictinfo

where sysuser.groupid = dictinfo.dictcode

注意:如果使用内链接查询出现重复记录,首先去思考是否是sql写错了,不能直接去使用distinct去除重复记录。

有一些特殊情况下还是需要使用distinct去除重复记录,比如复杂的统计分析sql。

看这个项目视屏的时候我刚好也在看50个查询系列,写那里的sql查询语句我就碰到了这个问题。我也用了Distinct函数,原来是不能用的啊。

外链接关联查询:

表A,表B中只有一部分数据和表A匹配,不能使用内链接。

主查询是表A,只能使用外链接。

--查询用户所属单位,sysid对应三张表的id

select sysuser.*,useryy.mc from sysuser left join useryy on sysuser.sysid = useryy.id

select * from useryy right join sysuser on sysuser.sysid = useryy.id

--以上的需要不能使用内链接

select sysuser.*,useryy.mc from sysuser, useryy where  sysuser.sysid = useryy.id

小结:

表A中从表B中只能关联查询一部分数据,只能使用外链接

子查询

select sysuser.*,

(select * from useryy where id = sysuser.sysid)

from sysuser

子查询只能返回一列,否则 :

子查询只允许返回一行,否则 :

正确的sql:

--子查询

--根据sysid取出单位名称

--根据groupid查询用户类型代码对应的名称

select sysuser.*,

(select mc from useryy where id = sysuser.sysid)sysmc,

(select info from dictinfo where dictcode = sysuser.groupid and typecode = ‘s01‘)groupname

from sysuser

嵌套表

可以将一个sql查询结果组成一个虚表,查询方式和查询一个实体表相同的。

组成的虚拟表字段是不允许重复的,否则 :

时间: 2024-08-02 02:46:10

031医疗项目-模块三:药品供应商目录模块——sql补充知识的相关文章

034医疗项目-模块三:药品供应商目录模块——供货商药品目录(批量)添加药品的功能---------Service

这篇文章我们重点介绍Service层.因为Dao层就是用Gysypml逆向生成的Mapper就可以了.所以这里重点讲解Service层. 业务逻辑如下: 1:我们从前端页面传入有两个值:1:usergysid(供应商的id),2:YPPxxID(药品的目录id) 我们看一下我们要插入数据的表: 我们要做的就是把这两个字段插入. 2:我们看这样表的设计: 这里有这么一个约束,那就是YPXXID和USERGYSID两个字段成为一个主键.

029医疗项目-模块三:药品供应商目录模块——Dao层:基本的查询语句的编写

我们安装显示的要求: 我们能看到显示的目录里面有:供货企业的名字(这个数据来自于供货商的表[usergys]),流水号,通用名,剂型(这些都来自药品信息表),供货的状态(这个呢在gysypml_control中其实就是一个数字1或者0,但是我们要显示的是正常或者暂停 啊,这样的话这个信息就要查找数据字典表dictinfo才能达到这个功能的 ).... 所以我们在查上面要显示的内容的时候:要关联的表有 gysypml, usergys, gysypml_control, ypxx,dictinfo

028医疗项目-模块三:药品供应商目录模块——需求分析

我们先讲一下这个模块的需求,要实现什么样的功能. 1:供应商需要将自己供应的药品信息添加到供应商的药品目录中,药品目录中存在药品:那就说明供应商要供应这些药品,医院可以按照供货商的供应的商品去采购. 2:监督单位呢可以对供货商的药品进行控制.比如说停止供货商的继续供应等. 操作流程: 供货商的角度: 第一步:使用供货商登录系统.然后点击"供货商药品目录维护" 显示了供货商药品目录信息: 第二步: 向供货商药品目录添加药品,添加的药品表示供货商要供应的药品. 供货商查询药品目录 ,从里边

032医疗项目-模块三:药品供应商目录模块——Service层和Action层和调试

我们上一篇文章讲了Dao层代码: 这一篇我们讲解Service层和Action层: Service层: 分为接口和实现类,我们主要看实现类:GysemplServiceImpl package yycg.business.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import yycg.business.dao.mapper.Gysypml

029医疗项目-模块三:药品供应商目录模块——数据模型的分析(建表)

这篇文章主要分析数据库表的结构,以及表和表的关系. 如下: 供货商方面的分析: 供货商需要将自己供应的药品信息添加到供货商药品目录中,药品目录中存在药品说明供货商要供应这些药品,医院按照供货商供应药品去采购. 功能分析: 1:供货商添加药品目录 说明供货商要供应这些药品     向供货商药品目录表插入一条数据 2:供货商删除药品目录 供货商不再供货从供货商药品目录表删除记录,根据供货商id和药品信息id删除记录 供货商药品目录表: Id:主键 供货商id:外键,引用供货商单位表的主键 药品信息i

044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)

我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中这里没有写采购量,我们这篇文章做的就是把采购量写进入,也就是Updata之前的那个记录.这样采购单里面的记录就完整了. 如下: Dao层:用的是逆向工程生成的:yycgdmxMapper.updateByPrimaryKeySelective(yycgdmx_updat

1.模块2.循环导入问题及解决思路3.区分py文件的两种类型4.模块的查找顺序5.模块的绝对导入与相对导入6.项目开发的目录规范

一.模块 什么是模块? 模块就是一系列功能的结合体 模块的三种来源: 1.内置的(python解释器自带的) 2.第三方的(别人写的) 3.自定义的(你自己写的) 模块的四种表现形式: 1.使用python编写的py文件(也就是意味着py文件也是可以称之为模块 2.已被编译为共享库或DLL的或C++扩展(了解) 3.把一系列模块组织到一起的文件夹(文件夹下有一个__init__.py文件,该文件夹称之为包) 4.使用C编写并连接到Python解释器的内置模块 模块选择 1.用别人写好的模块(内置

ItelliJ基于Gradle创建及发布Web项目(三)

关键字:web 多模块 用惯了eclipse傻瓜式的配置,开始web部署真的不习惯. 一.现象: 项目发布了,死活找不到依赖模块中的类. 二.排查 确定F4->Artifacts->Output Layout中添加了模块out 然并卵-- 三.原因 现在知道了,还是自己配置的out比较乱,web项目的classes输出到"项目路径/build"中,而模块的classes输出到项目路径/out中了. 打包的时候看起来抛弃了模块的classes. 四.解决 先规范一下,找找ec

【Android的从零单排开发日记】之入门篇(三)——Android目录结构

本来的话,这一章想要介绍的是Android的系统架构,毕竟有了这些知识的储备,再去看实际的项目时才会更清楚地理解为什么要这样设计,同时在开发中遇到难题,也可以凭借着对Android的了解,尽快找出哪些模块和设计能够帮助解决该问题.但想了一下,这毕竟是入门篇,若没有实际项目开发经验的人看了之后肯定是一头雾水,所以就决定将其搁浅到大家熟悉Android之后再为大家介绍. 那么今天的主题是Android的目录结构,将系统架构比作人的骨骼架构的话,目录结构就像是人的各个器官,彼此功能各不相同,却能有序地