为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复“缺少表的 FROM 子句条目”错误

如何修复“缺少表的 FROM 子句条目”错误

Go
凤凰求蛊 2023-07-10 14:24:52
我正在尝试根据游戏 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)


查看完整回答
反对 回复 2023-07-10
?
慕码人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 ”)。


查看完整回答
反对 回复 2023-07-10
  • 2 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信