gpt4 book ai didi

java - 使用内部联接查询运行 count() 时,Room 返回包含一项的列表,而不是空列表

转载 作者:行者123 更新时间:2023-12-02 02:27:24 27 4
gpt4 key购买 nike

我运行了这个查询

 SELECT SURVEY.* 
, COUNT(RESPONSE.OFFLINE_ID) AS responseCount
FROM SURVEY
INNER JOIN RESPONSE
ON SURVEY.OFFLINE_ID = RESPONSE.OFFLINE_SURVEY_ID

在一个空数据库上,我得到了一个包含一个对象的列表,该对象的所有字段都设置为 null,计数字段设置为 0,而不是一个空列表。有人可以帮忙解决这个问题吗?

更新:由于我糟糕的列命名,为了更清楚;

  • SURVEY 和 RESPONSE 之间是一对多的关系。
  • SURVEY 主键为 OFFLINE_ID
  • RESPONSE 主键是 OFFLINE_ID
  • RESPONSE 表中 SURVEY 的外键标识符为OFFLINE_SURVEY_ID。

我想做的只是获取调查列表以及相应的响应计数。

最佳答案

您描述的结果非常惊人,因为我看不出您问题中的查询在任何标准 SQL 系统上运行。您问题中的代码应该让服务器提示缺少 GROUP BY,但是根据 @Shawn 的评论,看起来 sqlite 是一个异常(exception)......

<小时/>

所以,假设:

  1. 以上,以及
  2. 您想要一个空数据库的空列表作为结果,并且
  3. SURVEY 中有一个 ID 列,

以下查询可能是您想要的:

SELECT
SURVEY.* ,
COUNT(RESPONSE.OFFLINE_ID) AS responseCount
FROM
SURVEY
LEFT OUTER JOIN
RESPONSE
ON
SURVEY.OFFLINE_ID = RESPONSE.OFFLINE_SURVEY_ID
GROUP BY
SURVEY.OFFLINE_ID;

关于java - 使用内部联接查询运行 count() 时,Room 返回包含一项的列表,而不是空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57246049/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com