我正在尝试根据游戏 ID 获取平台名称。我有如下三个表,我正在尝试加入它们以获得所需的结果: GamesId | .....| .....|---|------ ------|1 | . | . |2 | . | . |3 | . | . |4 | . | . | Game_PlatformsId |....|game_id| platform_id|...|---------------------------------1 | . | 1 | 1 |.. |2 | . | 1 | 2 |.. |3 | . | 3 | 3 |.. |.. | . | 4 | 4 |.. | PlatformsId| ...|...| name |---------------------|1 | . | . | iOS |2 | . | . | Android |3 | . | . | Windows |4 | . | . | SteamOS |type Platforms struct { Name string}var name []Platformsquery = postgres.Db().Select("name"). Joins("JOIN games ON games.id = game_platforms.game_id"). Joins("JOIN game_platforms ON game_platforms.platform_id = platforms.id"). Where("games.id = 1").Find(&name)我希望获得平台名称,但出现错误:pq:缺少表“game_platforms”的 FROM 子句条目我认为我写的连接命令不正确,但看起来合乎逻辑,也许我错了。
2 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
您的查询缺少该FROM
子句。
我假设您想从表中选择数据platforms
。如果是,那么(根据您的代码)您应该与第game_platforms
一个然后与games
.
query = postgres.Db().Select("name"). Find("platforms"). // <------ this one Joins("JOIN game_platforms ON game_platforms.platform_id = platforms.id"). Joins("JOIN games ON games.id = game_platforms.game_id"). Where("games.id = 1").Find(&name)
慕码人2483693
TA贡献1860条经验 获得超9个赞
所以我的问题的答案并不是没有@novalagung的支持,
归功于他,所以我需要将查询更改为如下所示
query = postgres.Db().Select("name"). Joins("JOIN game_platforms ON game_platforms.platform_id = platforms.id"). Joins("JOIN games ON games.id = game_platforms.game_id"). Where("games.id = 1").Find(&name)
但是我有一个错误,说pq: 列引用“name”不明确
但这是我的错,因为我没有指定有问题的所有表,因此需要做一些小的更改来解决此错误是Select("platforms.name ”)。
- 2 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消