[英]Golang query multiple databases with a JOIN
Using the golang example below, how can I query (JOIN) multiple databases. 使用下面的golang示例,如何查询(JOIN)多个数据库。 For example, I want to have the relation
db1.username.id = db2.comments.username_id
. 例如,我想要具有关系
db1.username.id = db2.comments.username_id
。
id := 123
var username string
err := db.QueryRow("SELECT username FROM users WHERE id=?", id).Scan(&username)
switch {
case err == sql.ErrNoRows:
log.Printf("No user with that ID.")
case err != nil:
log.Fatal(err)
default:
fmt.Printf("Username is %s\n", username)
}
As you are using MySQL, you can select fields across databases. 使用MySQL时,您可以跨数据库选择字段。 See this related question for details.
有关详细信息,请参见此相关问题 。 For example you should be able to do this:
例如,您应该能够执行以下操作:
err := db.QueryRow(`
SELECT
db1.users.username
FROM
db1.users
JOIN
db2.comments
ON db1.users.id = db2.comments.username_id
`).Scan(&username)
You can of course simply fetch all entries from db2.comments
using a second database connection and use the values in a query to db1.users
. 当然,您可以使用第二个数据库连接简单地从
db2.comments
获取所有条目,并在查询中使用db1.users
的值。 This is, of course, not recommended as it is the job of the database server which it can, most likely, do better than you. 当然,不建议这样做,因为这是数据库服务器的工作,它很可能比您做得更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.