left join如何去除重复数据

问题描述:

left join如何去除重复数据
1个回答 分类:综合 2014-10-02

问题解答:

我来补答
--大概思路:如果是从主表一直left join 子表 ,distinct业务层次最底层的子表ID--wz_xqjhd 物资需求计划单--wz_zbbd 物资招标标段--WZ_ZBBDQB 招标标段签报--wz_yzbfa 物资预中标方案--wz_qbzb 物资签报主表--wz_zbjg 物资中标结果--jhtm 计划条目--jhtmfp 计划条目分配--以上表关系 :wz_xqjhd(1:n)wz_zbbd wz_xqjhd(1:n) wz_zbjg-- wz_yzbfa(1:n)wz_zbbd wz_qbzb(1:n)WZ_ZBBDQB wz_zbbd(1:n)WZ_ZBBDQB WZ_ZBBDQB相当于中间表-- wz_xqjhd(1:n) wz_zbjg-- jhtmfp 为wz_jhtm与wz_zbbd的中间表-- wz_jhtm 条目一层 相当于是业务的最低层 这个时候可以distinct去过滤最底层数据select distinct(jhtm.jhtm_id) ,xqjhd.*,zbbd.*,jhtm.* from wz_xqjhd xqjhd left join wz_zbbd zbbd on zbbd.xqjhd_id = xqjhd.xqjhd_id left join WZ_ZBBDQB zbbdqb on zbbdqb.zbbd_id=zbbd.zbbd_id left join wz_yzbfa yzbfa on yzbfa.yzbfa_id=zbbd.yzbfa_id left join wz_qbzb qbzb on qbzb.qb_id=zbbdqb.dbqb_id left join wz_zbjg zbjg on zbjg.Xqjhd_Id=xqjhd.xqjhd_id left join wz_jhtm jhtm on jhtm.xqjhd_id=xqjhd.xqjhd_id left join wz_jhtmfp jhtmfp on jhtmfp.jhtm_id=jhtm.jhtm_id and jhtmfp.zbbd_id=zbbd.zbbd_id;
以上是从主表关联子表 一层一层来的,下面是从子表开始:
select distinct(jhtm.jhtm_id) ,xqjhd.*,zbbd.*,jhtm.* from wz_jhtm jhtm left join wz_jhtmfp jhtmfp on jhtmfp.jhtm_id=jhtm.jhtm_id left join wz_zbbd zbbd on jhtmfp.zbbd_id = zbbd.zbbd_id left join WZ_ZBBDQB zbbdqb on zbbdqb.zbbd_id=zbbd.zbbd_id left join wz_yzbfa yzbfa on yzbfa.yzbfa_id=zbbd.yzbfa_id left join wz_qbzb qbzb on qbzb.qb_id=zbbdqb.dbqb_id left join wz_xqjhd xqjhd on xqjhd.xqjhd_id=jhtm.xqjhd_id left join wz_zbjg zbjg on zbjg.Xqjhd_Id=xqjhd.xqjhd_id从主表开始left join还是子表开始,具体得看业务逻辑,参考的具体层次
 
 
展开全文阅读
剩余:2000