admin

“查询返回多于1行”错误。

sql

我是Web编程的新手,我正在尝试制作一个Twitter克隆。此时,我有3个表:

用户(ID,名称)

  • id是自动生成的id
  • 用户名

鸣叫(id,内容,user_id)

  • id是自动生成的id
  • 内容是推文的文字
  • user_id是发布该帖子的用户的ID

关注者(id,user_id,following_id)

  • id是自动生成的id
  • user_id是正在执行以下操作的用户
  • following_id是被关注的用户

因此,作为sql的新手,我正在尝试构建一条SQL语句,该语句将返回当前登录用户及其关注的所有人的推文。

我尝试使用此语句,该语句有时有效,但其他时候,我收到一条错误消息:“子查询返回多于1行”。这是声明:

SELECT * FROM tweets 
WHERE user_id IN
((SELECT following_id FROM followers
WHERE user_id = 1),1) ORDER BY date DESC
  • 我在这里以1为例,它是当前登录用户的ID。

我对这句话没有任何运气。任何帮助将不胜感激!谢谢你。


阅读 107

收藏
2021-07-01

共1个答案

admin

SELECT *
FROM tweets
WHERE
user_id IN (SELECT following_id FROM followers WHERE user_id = 1)
OR user_id = 1
ORDER BY date DESC

2021-07-01