我想显示属于两个表的两列的行数。但是,结果不是我预期的。我真的很困惑。你能建议吗?感谢。
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”。
答案 0 :(得分:2)
在您上次查询中执行cartesian product。
答案 1 :(得分:1)
这是因为你将INCOME
的每一行加入到EXPEND
的每一行(称为笛卡尔积)
而不是FROM INCOME, EXPEND
,你需要做像
FROM INCOME
JOIN EXPEND
ON Income.SomeColumn = Expend.SomeColumn
或在当前查询中添加where子句:
FROM INCOME, EXPEND
WHERE Income.SomeColumn = Expend.SomeColumn