2014-12-03 52 views
-1

我想運行此查詢:如何使用交叉連接比較連接表中的值? MySQL的

SELECT business.name as businessName i.ratingCount , i.ratingSum 
FROM business 
cross join 
    (
    SELECT SUM(rating.rating) as ratingSum,COUNT(rating.bussId) as ratingCount 
    FROM rating 
    WHERE rating.bussId = business.bussId 
)i 

,但我得到這個錯誤Unknown column 'business.bussId'!如何解決它?

I don't want to use left join ! 
+0

你可能想拼「業務」錯一貫做組。或者,你知道,在任何地方拼寫都是一種選擇。但這是一致性,這很重要。 – 2014-12-03 17:00:48

+0

@MattGibson我改正了!但這不是問題,你知道如何解決它? – david 2014-12-03 17:06:12

回答

0

你需要使用它作爲相關子查詢

SELECT business.name as businessName, 
     (select sum(rating.bussId) 
     from rating 
     where rating.bussId = business.bussId 
     ) as ratingSum, 
     (select count(rating.bussId) 
     from rating 
     where rating.bussId = business.bussId 
     ) as ratingCount 
FROM business 

,或者您可以使用左連接和

SELECT business.name as businessName, 
     sum(rating.bussId) as ratingSum, 
     count(rating.bussId) as ratingCount 
FROM business 
left join rating 
on business.bussId = rating.bussId 
group by business.name 
+0

感謝您的回答,但爲什麼我不能用交叉連接做到這一點? – david 2014-12-03 17:29:39

+0

@David,您可以在相同的選擇中訪問相關子查詢中的表,在交叉連接中無效。 – radar 2014-12-03 17:32:37