有两张表A(aid int,bid nvarchar(10));B(bid int,desc nvarchar(100))A中有一条记录(1,'aaa');B中有一条(1,'desc1')select A.* from A left join B on A.bid =B.bid(不会报错,查询出来一条结果)select A.*,B.desc from A left join B onA.bid = B.bid(报错:在将 nvarchar 值 'desc1' 转换成数据类型 int 时失败)select A.* from A left join B on A.bid =B.bid where B.desc = 'desc1'(不会报错但是没有结果)select A.* from A inner join B on A.bid =B.bid(报错:在将 nvarchar 值 'desc1' 转换成数据类型 int 时失败)数据错误是肯定的,但是就是不理解为什么在left join 的时候,如果查询字段中不添加B表字段就不报错,where条件里面添加B表的字段也不会报错,而inner join 就会报错。希望大神门不吝赐教,谢谢了! |
|
|
|
|
共 1 个关于本帖的回复 最后回复于 2013-7-16 13:18