我使用 Go 语言。我有两个不同的数据库服务器:
- Postgresql
- MS SQL。
对于他们两个,我分别建立了一个连接:
db1, err := sql.Open("postgres", psqlconn)
db2, err := sql.Open("sqlserver", u.String())
连接工作正常。
现在我想连接第一个数据库和第二个数据库的数据:使用 JOIN。 示例:
rows, err := db1.Query('select *
from db1.dbname1.tabel
left join db2.dbname2.tabel on db2.dbname2.tabel.id = db1.dbname1.tabel.id;')
但这不起作用:(我怎样才能将两个表连接在一起?我什么也没得到。或者还有其他方法可以做到这一点吗?
感谢您的支持!! 马蒂亚斯
最佳答案
像 gorm 这样的 ORM 基本上是一个对象关系层,它提供了一些 API,可以将语言级实体转换为 SQL 查询,反之亦然。他们基本上将您的查询转换为单个 SQL 查询,现在您的 postgresql 数据库收到一个查询,该查询是表 a
(恰好存在)和另一个表 b
的联接这是在另一个数据库中!连接是在数据库级别完成的,而不是 ORM 级别。所以你无法实现这一点。
您能做的最好的事情就是执行两个单独的查询,然后将它们连接到您的应用程序层或其他层中。
关于sql-server - Go语言: JOIN sql with two different connections/databases,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73124758/