Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Oracle选择评论最多的新闻_Sql_Oracle_Select - Fatal编程技术网

Sql Oracle选择评论最多的新闻

Sql Oracle选择评论最多的新闻,sql,oracle,select,Sql,Oracle,Select,我有两个表格:新闻和评论 新闻表格: 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), "MODIFIC

我有两个表格:
新闻
评论

新闻
表格:

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
)
CREATE TABLE "COMMENTS"
(
  "COMMENT_ID"    NUMBER(20, 0),
  "COMMENT_TEXT"  VARCHAR2(100 BYTE),
  "CREATION_DATE" TIMESTAMP(6),
  "NEWS_ID"       NUMBER(20, 0)
)
注释
表格:

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
)
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

第3行有一个额外的闭合支架。但是谢谢你的快速回复。