日期:2014-05-17  浏览次数:20366 次

SQL join 疑问
最近写了条SQL语句发现一个疑问 

SELECT t1.*
FROM 物料分仓表 t1 LEFT OUTER JOIN
      物料总和表 t2 ON t1.物料代码 = t2.物料代码
LEFT OUTER JOIN 仓库 t3 ON  t1.发料仓库 = t3.仓库名
LEFT OUTER JOIN 单位 t4 ON  t1.单位 = t4.单位名称
ORDER BY t1.物料代码


物料分仓表的记录条数是 19127 条 可是关联了 仓库表 和 单位表后 数量变成了 25195 条

LEFT OUTER JOIN 仓库 t3 ON  t1.发料仓库 = t3.仓库名
LEFT OUTER JOIN 单位 t4 ON  t1.单位 = t4.单位名称  

LEFT OUTER JOIN 不是关联左表 以左表的 数量为基准么 多出来的数据是什么情况啊

------解决方案--------------------
假设A、B两表,以ID为关联,
A有数据:
1 abc
B有数据:
1 cde 
1 efg
那么select * from A LEFT JOIN B ON A.ID=B.ID的结果是:
1  abc cde
1  abc efg
这就是所谓的多出来的数据