【问题标题】:MySql error when trying to combine two tables尝试合并两个表时出现 MySql 错误
【发布时间】:2019-01-11 00:36:59
【问题描述】:

您好,当我尝试合并两个表 Post 和 User 时出现以下错误

错误:外部输入 'post' 期望 {, ';', K_ALTER, K_ANALYZE, > > K_ATTACH, K_BEGIN, K_COMMIT, K_CREATE, K_DELETE, K_DETACH, K_DROP、K_END、K_EXPLAIN、K_INSERT、K_PRAGMA、K_REINDEX、K_RELEASE、 K_REPLACE、K_ROLLBACK、K_SAVEPOINT、K_SELECT、K_UPDATE、K_VACUUM、 K_VALUES、K_WITH、UNEXPECTED_CHAR}

我有一个表格,其中包含许多帖子,其中包含标题、正文以及创建该帖子的用户,

用户表是用户详细信息的列表,例如姓名和地址。

我正在尝试创建一个输出帖子详细信息的结果集,例如标题和正文,以及附加的用户用户名(帖子表只有一个用户 ID 参考)

这是我尝试过的查询

SELECT post.title AS title, post.body AS body, post.username AS username FROM post, user, WHERE user.id = post.userId

我的sql技能有点生疏但是相信上面的用例查询可以做到吗?

【问题讨论】:

    标签: mysql sql database sql-like android-room


    【解决方案1】:

    听起来你想要一个表连接。我假设当你写 post.username 时你的意思是 user.username,因为你后来说 post 表只有一个 userId 引用。

    你可能想要这样的东西:

    SELECT post.title, post.body, user.username
    FROM post
    INNER JOIN user
    ON post.userId=user.id;
    

    【讨论】:

      【解决方案2】:

      你应该试试这样的:

      SELECT p.title AS title,p.body AS body,p.username AS username 
      FROM post p 
      JOIN user u ON u.id = p.userId
      WHERE u.id = 'to your user id'
      

      【讨论】:

        【解决方案3】:

        您的查询看起来不错,但删除了 where 子句之前的逗号:

        来自

        SELECT post.title AS title, post.body AS body, post.username AS username FROM post, user, WHERE user.id = post.userId
        

        SELECT post.title AS title, post.body AS body, post.username AS username FROM post, user WHERE user.id = post.userId
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-02-16
          • 2015-12-13
          • 1970-01-01
          • 1970-01-01
          • 2010-11-19
          • 2019-10-05
          • 1970-01-01
          相关资源
          最近更新 更多