我想通過查看CategoryBusinessMapping和Review Review表來檢索CategoryID和CategoryName。我試圖找回以下類別表的數據:使用三個表查詢SQL數據
Category ParentCategoryID CategoryName
1 null Education
2 1 School
3 null Health
4 3 Doctors
5 1 Colleges
我有業務表具有BusinessID和BUSINESSNAME和BusinessDescription這樣的:
BusinessID BusinessName BusinessDescription
YP00001 XYZ ABCD
YP00002 ABC XYZA
我有CategoryBusinessMapping表如下:
MappingID CategoryID BusinessID
1 1 YP00001
2 2 YP00001
3 5 YP00001
4 3 YP00002
5 4 YP00002
我有這個映射表來映射不同的類別與業務。我也有評級表是這樣的:
RatingID BusinessID
1 YP00001
2 YP00001
3 YP00001
4 YP00002
5 YP00002
在這裏,在這個表中,我假定其中具有相同BusinessID紀錄是在秋季最流行的業務。這意味着,在上面的商業ABCD ID = YP00001有四個記錄在評級表中。因此它屬於最受歡迎的商業。同樣,YP00002落在YP00001旁邊。通過以降序查看最受歡迎的業務,我想檢索CategoryName和CategoryID。我曾嘗試這僅從評級表中檢索:
select Distinct ReviewRating.BusinessID
,Count(*)as Rating
from YP.utblYPReviewRatingDtls as ReviewRating
group by ReviewRating.BusinessID
order by Rating desc
我已經試過這樣:
SELECT distinct c.CategoryName, b.BusinessID
FROM Category c
INNER JOIN categoryBusinessMapping cbm
ON (c.CategoryID=cbm.CategoryID)
INNER JOIN Business b
ON (cbm.BusinessID=b.BusinessID)
LEFT JOIN Rating r
ON (cbm.BusinessID=r.BusinessID)
where c.ParentCategoryID is null
,但我得到的結果是redundent。我也從查詢中刪除BusinessID,我得到的結果,但結果是不正確的。我可以如何刪除Redundency,並得到正確的輸出在這裏查詢。
。請幫幫我。謝謝。