select count(*) from ac01 a,jc10 b,T_idleness_register c where b.aae116='1' and c.c_no=a.aac001 and c.c_no=b.aac001 and c.C_attestation='200611'
得到的结果数是1674
但在T_idleness_register表中C_attestation='200611'的其实只有1510条,多出的100多记录是怎么来的呢?
得到的结果数是1674
但在T_idleness_register表中C_attestation='200611'的其实只有1510条,多出的100多记录是怎么来的呢?
解决方案 »
- 这个字符怎么更新掉?
- |zyciis| 数据库中的字键和外建关系 比如有商品表 销售表 商品评论表 当销售表中有当前商品时不能删 但当评论表中有可以删,并删除评论
- 求教:这个两个关联表一个月的数据统计SQL语句怎么写?
- 请教VS2010数据库项目的问题,谢谢~
- sql 2000 数据库日志文件怎样限制它的存储空间
- 求:sql查询后的记录如何存入新表中如
- case when语句的写法问题求解
- 在安装sql server7.0服务器版时,最后在添加证书时每服务器多少个客户和每客户有什么区别呢?
- sql-server弱弱的问题.解决就结贴
- restore数据库问题
- 主键生成问题
- sql前嵌套查询问题
就如同
select *
from a,b
若表a有3个记录,表b有5个纪录。则结果为15条
搂住的1674为个表满足where条件的数据的条数的乘积
不是吧,我在WHERE中对A和B加限制条件了?而且我的A中有40万记录,B中有20万记录呢!dawugui(潇洒老乌龟):
换位置也是一样的
这是关于from后逗号的作用的问题。
如果记不错的的话,今年日本软考FE级别考试的一道选择题就考得这个问题
date money
---------------------
2006-01-01 00:00:00.000 10.0000
2006-01-02 00:00:00.000 15.0000
2006-01-03 00:00:00.000 30.0000
2006-01-04 00:00:00.000 15.0000
2006-01-01 00:00:00.000 NULL表b:
money date fillmoney
----------------------------
20.0000 2006-01-01 00:00:00.000 NULL
10.0000 2006-01-01 00:00:00.000 NULL
40.0000 2006-01-01 00:00:00.000 NULL
有SQL语句:
select count(*)
from a,b
where a.money=15
and b.money in(20,10)
结果:
-------
4其中a表满足条件的是第2,4条,共2条;b表满足条件的是第1,2条,共2条
运行结果4=2*2
select * from ac01 a,jc10 b,T_idleness_register c where b.aae116='1' and c.c_no=a.aac001 and c.c_no=b.aac001 and c.C_attestation='200611'
和
select count(*) from ac01 a,jc10 b,T_idleness_register c where b.aae116='1' and c.c_no=a.aac001 and c.c_no=b.aac001 and c.C_attestation='200611'
得到的结果的条数应该一直吧。
我也觉得有点奇怪了
From
ac01 a
Inner Join
T_idleness_register c
On c.c_no=a.aac001
Inner Join
jc10 b
On c.c_no=b.aac001
Where b.aae116='1'
And c.C_attestation='200611'