1

我想显示属于两个表的两列的行数。然而,结果不是我所期望的。我真的很困惑。你能建议吗?谢谢。

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”。

4

2 回答 2

2

在您的最后一个查询中执行笛卡尔积。

于 2013-03-05T04:46:55.360 回答
1

这是因为您将每一行加入INCOME到每一行EXPEND(称为笛卡尔积)

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

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

或在当前查询中添加 where 子句:

FROM INCOME, EXPEND
WHERE Income.SomeColumn = Expend.SomeColumn
于 2013-03-05T04:48:39.770 回答