2013-03-05 81 views
1

我想显示属于两个表的两列的行数。但是,结果并不是我所期望的。我对此非常困惑。你能咨询一下吗?谢谢。来自COUNT语法的意外结果

SELECT COUNT(TABLE1.INTEREST) FROM INCOME; // RESULT = 10 

SELECT COUNT(TABLE2.LOAN) FROM EXPEND; //RESULT = 10 

SELECT COUNT(TABLE1.INTEREST), COUNT(TABLE2.LOAN) FROM INCOME, EXPEND; //RESULT = 100 

为什么如果我执行第三个SQL命令的结果是“100 | 100”?我预计结果是“10 | 10”。

回答

1

这是因为你是加盟的INCOME每一行上的EXPEND每一行(称为笛卡尔乘积)

而不是做FROM INCOME, EXPEND的,你需要做这样的事情

FROM INCOME 
JOIN EXPEND 
ON Income.SomeColumn = Expend.SomeColumn 

或添加where子句到您当前的查询:

FROM INCOME, EXPEND 
WHERE Income.SomeColumn = Expend.SomeColumn