表样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 用这个公式查询出来的数量是翻倍的不正确的,请问如何查询,还有类似这种更多个的表如何查询?
把星换成列名,因为两个表关联字段有重复
数据库锁大分类上有悲观锁和乐观锁。
答案:
可能的原因是联合表中存在多个相同字段的重复值,在联合查询时被重复计算。
需要根据具体情况进行以下解决方案:
SELECT DISTINCT column1, column2 FROM table1 JOIN table2 ON table1.id = table2.id;
SELECT column1, SUM(column2) FROM table1 JOIN table2 ON table1.id = table2.id GROUP BY column1;
SELECT table1.column1 AS column1_1, table2.column1 AS column1_2 FROM table1 JOIN table2 ON table1.id = table2.id;
通过以上方法可以避免结果中字段值的翻倍。