簡體   English   中英

嘗試聯接表時出現MySQL子查詢錯誤(建立評級系統)

[英]Mysql subquery errors when trying to join tables (making rating system)

好的,這是我遇到的問題。 有兩個表用於處理博客評論和這些評論的評級。 每次登錄的用戶對帖子進行評分時,都會在表“ commentrate”中插入新行。 “ commentrate”具有4個字段。 將ID設置為auto_increment,author_id,comment_id(已評分的評論的ID號)以及評分本身(以1到5為單位)。

實際注釋表具有一個commentid字段,該字段將與commentrate表中的comment_id匹配。

我需要一個Mysql查詢,該查詢將使用其commentid獲取博客評論表中的每個評論,並將其與所有具有相同comment_id的評分的平均值進行匹配。

目的是建立一個評分最高的帖子頁面。

我有一個查詢,如果您指定comment_id,它將返回一個包含comment_id和評分平均值的結果集。 但是,我無法使此查詢適用於博客評論表中的每個commentid。 該查詢是:

SELECT commentrate.comment_id, AVG(commentrate.rating) from commentrate WHERE commentrate.comment_id=35

我試圖使用子查詢和聯接來使這種情況發生,它不起作用,或者只會返回一行,或者會給我一條錯誤消息。 我嘗試過的查詢將在下面發布。 任何幫助,將不勝感激。 為了解決這個問題,我已經白費了幾天的努力。 謝謝。

SELECT bd_comments.commentid, bd_comments.comment FROM bd_comments WHERE bd_comments.commentid = ALL (SELECT commentrate.comment_id, floor(AVG(commentrate.rating)) from commentrate WHERE commentrate.comment_id=bd_comments.commentid)

錯誤:#1241-操作數應包含1列

SELECT bd_comments.commentid, bd_comments.comment FROM bd_comments WHERE bd_comments.commentid = ALL (SELECT commentrate.comment_id, floor(AVG(commentrate.rating)) from commentrate WHERE commentrate.comment_id=bd_comments.commentid)

錯誤:#1241-操作數應包含1列

我認為您只想將表連接在一起並取平均值:

select bd.commentid, floor(avg(cr.rating))
from commentrate cr join
     bd_comments c
     on cr.comment_id = bd.commentid
group by bd.commentid;

如果博客評論表中可以有重復的評論,則可能需要:

select cr.comment_id, floor(avg(cr.rating))
from commentrate cr
where cr.comment_id in (select bd.commentid from bd_comments);

收到此答案,它可以完美運行:

創建表bd_comments(commentid int,comment varchar(10),author_id int);

創建表注釋率(comment_id int,rating int,author_id int);

插入bd_comments值(1,“ comment 1”,100),(2,“ comment 2”,200),(3,“ comment 3”,300);

插入注釋值(1,3.5,100),(2,4,100),(3,5,100),(1,2.5,200),(2,1,200);這是查詢

選擇cr.comment_id,floor(avg(cr.rating))等級,c.comment,c.author_id從評論率cr,bd_comments c其中,cr.comment_id = c.commentid GROUP BY cr.comment_idOutput

| COMMENT_ID | 評分| 評論| AUTHOR_ID | | ------------ | -------- | ----------- | ----------- | | 1 | 3 | 評論1 | 100 | | 2 | 2 | 評論2 | 200 | | 3 | 5 | 評論3 | 300 |

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM