甲骨文选择评论最多的新闻



我有两个表:newscomments

News表:

CREATE TABLE "NEWS"
(
  "NEWS_ID"           NUMBER(20, 0),
  "SHORT_TEXT"        VARCHAR2(100 BYTE),
  "FULL_TEXT"         VARCHAR2(2000 BYTE),
  "TITLE"             VARCHAR2(30 BYTE),
  "CREATION_DATE"     TIMESTAMP(6),
  "MODIFICATION_DATE" DATE
)

Comments表:

CREATE TABLE "COMMENTS"
(
  "COMMENT_ID"    NUMBER(20, 0),
  "COMMENT_TEXT"  VARCHAR2(100 BYTE),
  "CREATION_DATE" TIMESTAMP(6),
  "NEWS_ID"       NUMBER(20, 0)
)

有没有办法选择按评论数量排序的所有新闻?

您可以使用评论数的聚合查询来联接新闻表:

SELECT    news.*, NVL(num_comments, 0) AS num_comments
FROM      news
LEFT JOIN (SELECT   news_id, COUNT(*) AS num_comments
           FROM     comments
           GROUP BY news_id) cmt on cmt.news_id = news.news_id
ORDER BY  num_comments DESC

最新更新