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

我正在尝试根据游戏 ID 获取平台名称。


我有如下三个表,我正在尝试加入它们以获得所需的结果:


      Games


Id | .....| .....|

---|------ ------|

1  | .    | .    |

2  | .    | .    |

3  | .    | .    |

4  | .    | .    |


      Game_Platforms


Id |....|game_id| platform_id|...|

---------------------------------

1  | .  | 1     |   1        |.. |

2  | .  | 1     |   2        |.. |

3  | .  | 3     |   3        |.. |

.. | .  | 4     |   4        |.. |


    Platforms

Id| ...|...| name    |

---------------------|

1 | .  | . | iOS     |

2 | .  | . | Android |

3 | .  | . | Windows |

4 | .  | . | SteamOS |

type Platforms struct {

   Name string

}


var name []Platforms


query = 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 子句条目


我认为我写的连接命令不正确,但看起来合乎逻辑,也许我错了。


凤凰求蛊
浏览 100回答 2
2回答

幕布斯7119047

您的查询缺少该FROM子句。我假设您想从表中选择数据platforms。如果是,那么(根据您的代码)您应该与第game_platforms一个然后与games.query&nbsp;=&nbsp;postgres.Db().Select("name"). &nbsp;&nbsp;&nbsp;&nbsp;Find("platforms").&nbsp;//&nbsp;<------&nbsp;this&nbsp;one &nbsp;&nbsp;&nbsp;&nbsp;Joins("JOIN&nbsp;game_platforms&nbsp;ON&nbsp;game_platforms.platform_id&nbsp;=&nbsp;platforms.id"). &nbsp;&nbsp;&nbsp;&nbsp;Joins("JOIN&nbsp;games&nbsp;ON&nbsp;games.id&nbsp;=&nbsp;game_platforms.game_id"). &nbsp;&nbsp;&nbsp;&nbsp;Where("games.id&nbsp;=&nbsp;1").Find(&name)

慕码人2483693

所以我的问题的答案并不是没有@novalagung的支持,归功于他,所以我需要将查询更改为如下所示query&nbsp;=&nbsp;postgres.Db().Select("name"). &nbsp;&nbsp;&nbsp;&nbsp;Joins("JOIN&nbsp;game_platforms&nbsp;ON&nbsp;game_platforms.platform_id&nbsp;=&nbsp;platforms.id"). &nbsp;&nbsp;&nbsp;&nbsp;Joins("JOIN&nbsp;games&nbsp;ON&nbsp;games.id&nbsp;=&nbsp;game_platforms.game_id"). &nbsp;&nbsp;&nbsp;&nbsp;Where("games.id&nbsp;=&nbsp;1").Find(&name)但是我有一个错误,说pq: 列引用“name”不明确但这是我的错,因为我没有指定有问题的所有表,因此需要做一些小的更改来解决此错误是Select("platforms.name ”)。
打开App,查看更多内容
随时随地看视频慕课网APP