两个表联合查询的结果字段值翻倍


表样1                表样2                需要的联合查询结果                
    订单ID    尺寸    小计数量        订单ID    条码    备注        订单ID    尺寸    小计数量    条码    备注
    1    10    1        1    99991    说明1        1    10    1    99991    说明1
    2    10    2        2    88881    说明2.1        2    10    1    88881    说明2.1
    3    10    5        2    88882    说明2.2        2    10    1    88882    说明2.2
                    3    77771    说明3.1        3    10    1    77771    说明3.1
                    3    77772    说明3.2        3    10    1    77772    说明3.2
                    3    77773    说明3.3        3    10    1    77773    说明3.3
                    3    77774    说明3.4        3    10    1    77774    说明3.4
                    3    77775    说明3.5        3    10    1    77775    说明3.5
                                                    
    如何实现需要的联合查询结果                                                
                                                    
    select t1.id,t1.chicun,t1.ct,t2.TIAOMA,t2.BEIZHU from Table_1 t1 left join Table_2 t2 on t1.id=t2.ID    用这个公式查询出来的数量是翻倍的不正确的,请问如何查询,还有类似这种更多个的表如何查询?            

img

img

把星换成列名,因为两个表关联字段有重复

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/932256
  • 你也可以参考下这篇文章:使用集合来储存查询结果
  • 除此之外, 这篇博客: 数据库事务一致性问题和数据库隔离级别中的 简述数据库的几种锁 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 数据库锁大分类上有悲观锁和乐观锁。

  • 您还可以看一下 张传波老师的软件设计是怎样炼成的?课程中的 整个程序需要考虑的设计规范小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    答案:

    可能的原因是联合表中存在多个相同字段的重复值,在联合查询时被重复计算。

    需要根据具体情况进行以下解决方案:

    1. 如果需要保留重复值,可以使用DISTINCT关键字来去除重复值,例如:
    SELECT DISTINCT column1, column2 FROM table1 JOIN table2 ON table1.id = table2.id;
    
    1. 如果需要对重复值进行计算合并,可以使用聚合函数(如SUM、COUNT等),例如:
    SELECT column1, SUM(column2) FROM table1 JOIN table2 ON table1.id = table2.id GROUP BY column1;
    
    1. 如果是多个表的联合查询,需要在SELECT语句中使用别名来区分相同的字段,例如:
    SELECT table1.column1 AS column1_1, table2.column1 AS column1_2 FROM table1 JOIN table2 ON table1.id = table2.id;
    

    通过以上方法可以避免结果中字段值的翻倍。