【发布时间】:2021-03-01 04:26:48
【问题描述】:
我在我创建的 SQlite3 数据库上使用 python。我已经创建了数据库,目前只是使用命令行来尝试正确获取 sql 语句。
我有 2 张桌子。
Table 1 - users
user_id, name, message_count
Table 2 - messages
id, date, message, user_id
当我设置表 2 时,我在创建消息表时添加了此语句,但我不知道它做了什么(如果有的话):
FOREIGN KEY (user_id) REFERENCES users (user_id)
我要做的是返回一个包含 2020 年期间的姓名和消息数的列表。我已经使用此语句来获取 2020 年的帖子总数,并且它有效:
SELECT COUNT(*) FROM messages WHERE substr(date,1,4)='2020';
但我正在努力弄清楚我是否应该加入表格,或者是否有办法只提取我需要的信息。我想要的语句看起来像这样:
SELECT name, COUNT(*) FROM users JOIN messages ON messages.user_id = users.user_id WHERE substr(date,1,4)='2020';
【问题讨论】:
-
当您在结果集中有多个表中的数据时,通常推荐使用
join。
标签: sql sqlite count subquery left-join