2013-03-05 74 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