Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 从数据库获取非活动用户_Sql_Sqlite - Fatal编程技术网

Sql 从数据库获取非活动用户

Sql 从数据库获取非活动用户,sql,sqlite,Sql,Sqlite,我有来自某个论坛的SQL数据库转储。我正在尝试构建一个查询,它将返回一个非活动用户列表,这些用户在一年内没有发送任何帖子。我正在考虑在上一篇文章中使用子查询,但我不确定我是否正确。现在我还没有得到任何可能的结果。。。你们能帮帮我吗 post_数据库: id INTEGER topic_id INTEGER post_id INTEGER u

我有来自某个论坛的SQL数据库转储。我正在尝试构建一个查询,它将返回一个非活动用户列表,这些用户在一年内没有发送任何帖子。我正在考虑在上一篇文章中使用子查询,但我不确定我是否正确。现在我还没有得到任何可能的结果。。。你们能帮帮我吗

post_数据库:

id  INTEGER                         
topic_id    INTEGER                         
post_id INTEGER                         
user_id INTEGER                         
date    TEXT                            
content TEXT
id  INTEGER                         
name    TEXT                            
用户数据库:

id  INTEGER                         
topic_id    INTEGER                         
post_id INTEGER                         
user_id INTEGER                         
date    TEXT                            
content TEXT
id  INTEGER                         
name    TEXT                            

我对SQLite了解不多,但您希望
一些字段分组,并使用
HAVING
子句限制在过去一年中没有发布的人:

SELECT u.name
FROM post_database AS p
JOIN user_database AS u
  ON p.user_id = u.id
GROUP BY u.name
HAVING MAX(date) < DATE('now','-1 year')
选择u.name
从post_数据库作为p
以用户身份加入用户_数据库
在p.user_id=u.id上
按美国名称分组
最大(日期)<日期('现在','-1年')

我不确定日期比较部分。

为什么您的日期存储为
TEXT
?我使用的是SQLite,它也使用文本来存储日期。为什么您使用
mysql
标签而不是
SQLite
?对不起,我的错。修正。这将找不到从未发布过帖子的用户。@hvd足够正确,但在问题范围内没有看到。哇,非常感谢!我曾经尝试过类似的事情,但没有“拥有”,我收到了坏结果,现在它的工作如预期@GoatCO这个问题问的是“一年内没有发过任何帖子的用户”,而我认为从来没有发过帖子的用户肯定符合条件@hvd同意,如果他们存在,他们将符合条件。