首页 新闻 会员 周边 捐助

sql server 2000的写法*=等价于left join么?

0
悬赏园豆:10 [已解决问题] 解决于 2017-01-24 15:31

Select COUNT(*)
 From t_prod_list,t_prod_desp
Where pl_prod_id *= pd_prod_id
    And pd_seller_id = 'ALL'

 

 

Select COUNT(*)
 From t_prod_list
 LEFT  JOIN t_prod_desp ON  pl_prod_id = pd_prod_id
Where  pd_seller_id = 'ALL'

 

我写了了两段sql,结果查询出来的结果1为1412134,结果2为1025492,网上说*=等价于left join 但是实际结果却不等价,是我sql 语句写错了还是有什么其它原因,求大神指点

sql
浅草青晨的主页 浅草青晨 | 小虾三级 | 园豆:904
提问于:2017-01-19 11:53
< >
分享
最佳答案
0

A*=b,等价于 A=A*B,跟left join 没有半毛钱关系

收获园豆:10
悦光阴 | 老鸟四级 |园豆:2251 | 2017-01-20 10:28

这个是表连接啊,不是乘的缩写

浅草青晨 | 园豆:904 (小虾三级) | 2017-01-20 10:30

@浅草青晨: 

Select COUNT(*)
 From t_prod_list,t_prod_desp
Where pl_prod_id *= pd_prod_id 
    And pd_seller_id = 'ALL'

当在两个表之间使用“,”时,是全连接的意思,在where子句中指定连接条件,但是你的 pl_prod_id *= pd_prod_id 条件等价于 pl_prod_id *pd_prod_id= pd_prod_id ,只能帮你到这里了,看你的悟性了

悦光阴 | 园豆:2251 (老鸟四级) | 2017-01-20 10:34

@悦光阴: 我知道你想说什么,但是这个是sql 2000的写法,不是你说的这个东西,不过还是表示感谢

浅草青晨 | 园豆:904 (小虾三级) | 2017-01-20 10:36
其他回答(1)
-1

还在用快20年的东西吗


秋叶无痕 | 园豆:26 (初学一级) | 2017-01-19 13:44

所以要改啊,如果有等价的,就基本上不用经过测试了,如果有区别就得去关注一下逻辑了

支持(0) 反对(0) 浅草青晨 | 园豆:904 (小虾三级) | 2017-01-19 13:47

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

注册专门来这边哈哈哈一下

支持(0) 反对(0) 丷哈哈哈丷 | 园豆:200 (初学一级) | 2017-01-19 14:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册