我想从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=?