我想从joke表获得结果,在其中嘲笑
jokevote表。

这是查询:

var jokes []model.Joke
err := shared.Dbmap.Select(&jokes, "    SELECT  *
    FROM  joke
    LEFT JOIN  jokevote
    WHERE  joke.user_id=?
      AND  jokevote.user_id=?
      AND  jokevote.vote=1

“,userId,userId)
如果err!= nil {
fmt.Println(“%v \ n”,err)
}

但是我得到这个错误:

错误1064:您的SQL语法有错误。查看手册
对应于您的MariaDB服务器版本的正确语法
在'WHERE joke.user_id =附近使用? AND jokevote.user_id =?和
第1行的jokevote.vote = 1'

我也尝试过:
err := shared.Dbmap.Select(&jokes, "    SELECT  *
    FROM  joke
    LEFT JOIN  jokevote
    WHERE  joke.user_id=jokevote.user_id
      AND  jokevote.vote=?

“,1)

并得到了相同的错误。
我查看了the docs,找不到任何此类连接的示例。
所以想知道如何解决它。

最佳答案

例子可以在mariadb文档中找到。您缺少的是on子句,该子句告诉mariadb如何连接2个表。您不能将老式的联接语法与left join一起使用,将联接条件放入where子句中。

SELECT * FROM joke
LEFT JOIN jokevote ON joke.user_id=jokevote.user_id
WHERE jokevote.vote=?

09-26 02:45