2013-04-22 69 views
-1

帳戶表中有4行不同。SQL GROUP BY不工作

我不明白爲什麼我的聲明只返回1行。

SELECT *, 
my_accounts.id as 'aid' 
FROM my_accounts 
LEFT JOIN my_availability on my_accounts.id = my_availability.the_account 
LEFT JOIN my_reviews on my_accounts.id = my_reviews.the_reviewer 
WHERE account_type = 1 
GROUP BY my_accounts.id 

但是,當我刪除GROUP BY,我得到2相同的行。

這裏舉例:sqlfiddle.com/#!2/e6f2c

+1

顯示一些示例數據,您也使用'*',因此它會嘗試從所有表中獲取數據。 – hims056 2013-04-22 09:47:24

+0

[sqlfiddle](http://www.sqlfiddle.com/)也會非常有幫助。 – fedorqui 2013-04-22 09:48:18

+0

爲什麼你在這個查詢中使用'group by'? – Meherzad 2013-04-22 09:49:53

回答

1

這將是更好的my_accounts.id兩個不同的值使用組通過對一些聚合函數。給,並查看結果。據你 「當我刪除GROUP BY,我得到2相同的行」。 Group通過在有兩個相同的值時返回一個單一值。在您的情況下,它似乎在my_accounts.id中有兩個值是相同的。

0

事實證明,這是acount_type的where子句導致我的戲劇。我沒有找到一個聚合解決方案