inner join 很奇怪的有关问题

inner join 很奇怪的问题
本帖最后由 yilin54 于 2014-05-27 23:08:05 编辑
有一表“型号名称表” 和一视图“累计统计01”,里面各有一条记录。
inner join 很奇怪的有关问题

现在将两者如果型号规格、材质、单价三者同时相等时,用inner join连接起来查询。代码如下

SELECT 累计统计01.材质, 累计统计01.总重量, 累计统计01.总金额, 累计统计01.单价, 
型号名称表.名称, 累计统计01.规格及型号
FROM 累计统计01 INNER JOIN 型号名称表 
ON (累计统计01.单价 = 型号名称表.单价) 
AND (累计统计01.材质 = 型号名称表.材质) 
AND (累计统计01.规格及型号 = 型号名称表.规格型号);

结果:
inner join 很奇怪的有关问题

这样的查询语句竟然结果为空。两者中型号规格、材质、单价,其实是有相等的啊(型号规格4Z40-150LB,材质CF8C,单价315.8),怎么连接查询结果为空啊?

后来我用left outer jion 又可以查询出来。代码如下

SELECT 累计统计01.材质, 累计统计01.总重量, 累计统计01.总金额, 
累计统计01.单价, 型号名称表.名称, 累计统计01.规格及型号
FROM 累计统计01 LEFT JOIN 型号名称表 ON 
(累计统计01.单价 = 型号名称表.单价)
 AND (累计统计01.材质 = 型号名称表.材质) 
AND (累计统计01.规格及型号 = 型号名称表.规格型号);

结果:
[img=http://img.bbs.csdn.net/upload/201405/27/1401202819_47605.jpg][/img

这样是有查询结果的。请问大家为什么那个inner join 查不到啊?
------解决方案--------------------
逐个条件排除看看

------解决方案--------------------
try this,

SELECT 累计统计01.材质, 累计统计01.总重量, 累计统计01.总金额, 
累计统计01.单价, 型号名称表.名称, 累计统计01.规格及型号
FROM 累计统计01 
inner join 型号名称表 ON 
(累计统计01.单价 = 型号名称表.单价)
 AND (累计统计01.材质 = 型号名称表.材质) 
 AND (累计统计01.规格及型号 = 型号名称表.规格型号);

------解决方案--------------------
若仍有问题,建议比对各个关联字段的数据类型是否一致?查看字符串后是否带有空格或其他不可见的字符?
------解决方案--------------------
把表结构贴出来看看,看看能不能复现
------解决方案--------------------
楼主要弄清楚inner join 与left join 的区别
你这个left join on条件不满足时,都会显示表【累计统计01】里的记录的
------解决方案--------------------
access很神奇
------解决方案--------------------
引用:
Quote: 引用:

楼主要弄清楚inner join 与left join 的区别
你这个left join on条件不满足时,都会显示表【累计统计01】里的记录的

老兄,是会显示【累计统计01】里的记录的,不过left查出的名称字段是另一个表里的,按理说应该是空值,怎么会有值呢?


建议楼主看一下联机帮助,先弄清left join 的含义吧——ON的条件满不满足都会将左表记录全部显示出来