求助,现在有两张表进行关联查询,查询很多条重复的数据?

组织表

字典表

组织表的orgCla数字需要对应字典表的DicName

我的执行语句如下

SELECT orgId, orgChnNam, 
    orgEngNam, tdd.DicName AS orgCla, topOrg,
    upOrg, manOrg, corOrg, orgTyp, orgLev, areCod 
        FROM tm_org tor, tm_dd_dicset tdd
        WHERE
          1 = 1
        AND
          tor.orgCla = tdd.DicCode

我只需要这个结果的前三条数据,请问如何修改

阅读 1.7k
2 个回答

字典表的DicTypeCode这个应该就是区分字典到底是用于什么字段的 加上这个条件就行

SELECT orgId, orgChnNam, 
    orgEngNam, tdd.DicName AS orgCla, topOrg,
    upOrg, manOrg, corOrg, orgTyp, orgLev, areCod 
        FROM tm_org tor
        LEFT JOIN tm_dd_dicset tdd tor.orgCla=tdd.DicCode and tdd.DicTypeCode='orgCla'
        WHERE
          1 = 1

根据你的描述看,字典表包含的不仅仅是组织类型,它作为字典表还包含了很多种类的字典。如果你仅仅用 DicCode 去匹配组织表的话,那么自然会从字典表中查出很多 DicTypeCode 不同但是 DicCode 相同的记录。你要做的是在关联字典表的同时排除字典表中不符合要求的记录。

select ... 
from tm_org o
left join tm_dd_dicset d on d.DicTypeCode='orgCla' and d.DicCode=o.orgCla
where ...
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题