当前位置:Gxlcms > 数据库问题 > 031医疗项目-模块三:药品供应商目录模块——sql补充知识

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

时间:2021-07-01 10:21:17 帮助过:16人阅读

有一些特殊情况下还是需要使用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查询结果组成一个虚表,查询方式和查询一个实体表相同的。

 

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

 

 技术分享

 

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

标签:代码   type   cti   分享   单位   分析   com   查询语句   distinct   

人气教程排行