失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 在SQL-SERVER2000中对同一个数据库多张表进行查询时怎样避免笛卡儿乘积???...

在SQL-SERVER2000中对同一个数据库多张表进行查询时怎样避免笛卡儿乘积???...

时间:2019-06-26 13:26:39

相关推荐

在SQL-SERVER2000中对同一个数据库多张表进行查询时怎样避免笛卡儿乘积???...

在写join类型的语句的时候,最好使用join来代替直接用“,”分隔多个表。这样必须提供on条件才能进行查询。当然,join的条件一定要设置好,否则也会出现笛卡尔积的。

比如tableA和TableB向关联的是ID字段

如果用“,“分隔两个表的话语据应该如下

select count(*)

from tableA ,TableB

where TableA.id=TableB.id

如果把where 语句漏掉就出现笛卡尔积了

select count(*)

from tableA ,TableB

同样,写成join的话,如果不指定on里的条件的话,语法是错的

select count(*)

from TableA join TableB

on TableA.id=TableB.id

但是如果再on里指定了一个错误的关联条件的话,也是会出现笛卡尔积的,比如:

select count(*)

from TableA join TableB

on 1=1

当然一般人不会闲得去把on条件设置成1=1,不过这是举个例子,就是为了说明on的筛选条件一定要设置好。

如果觉得《在SQL-SERVER2000中对同一个数据库多张表进行查询时怎样避免笛卡儿乘积???...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。