【问题标题】:Request sql COUNT not return to zero请求sql COUNT 不归零
【发布时间】:2018-08-29 07:13:24
【问题描述】:

我的请求在我的网站上查找新闻时出现问题,所以当我计算 quote_plus_normal_publi 的出现时我遇到了问题,问题是 COUNT 的这个语句恢复了主查询的所有结果的添加,所以我没有不知道怎么解决这个问题。

SELECT date, mess, publi, profil, color, name, search,

(SELECT COUNT(quote_plus_normal_publi.id_post_normal)
FROM publi
INNER JOIN quote_plus_normal_publi
ON publi.abo_id = quote_plus_normal_publi.abo_id
WHERE publi.id_personnes = 1) AS plus

FROM publi
WHERE id_personnes = 1
ORDER BY date DESC

出局:

>

 name:     John, SIr
> 
> search:    $jhon, $sir
> 
> color:    5, 15
> 
> profil:    null, null
> 
> publi:    null, null
> 
> mess:    "HEY", "HI"
> 
> date:    1535427143, 1535627143
> 
> plus:    4, 4

【问题讨论】:

  • 您使用的是 MS SQL Server 还是 Postgresql?
  • 分享样本数据和预期输出
  • 您的子查询需要相关,i.d。为外部 publi 表添加条件。
  • 对不起,我正在使用 postgres
  • 我该怎么做?

标签: sql postgresql count subquery


【解决方案1】:

您在子查询中重复publi 表——它在外部查询中。

我怀疑这是你的意图。您想使用 correlation 子句将子查询连接到外部查询:

SELECT p.*,  -- or whatever columns  you want
       (SELECT COUNT(qpnp.id_post_normal)
        FROM quote_plus_normal_publi qpnp
        WHERE p.abo_id = qpnp.abo_id
       ) as plus
FROM publi p
WHERE p.id_personnes = 1
ORDER BY p.date DESC;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    相关资源
    最近更新 更多