1

使用下面的 golang 示例,我如何查询(JOIN)多个数据库。例如,我想有关系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)
}
4

1 回答 1

1

当您使用 MySQL 时,您可以跨数据库选择字段。有关详细信息,请参阅此相关问题。例如,您应该能够这样做:

err := db.QueryRow(`
    SELECT 
        db1.users.username 
    FROM 
        db1.users 
    JOIN 
        db2.comments 
        ON db1.users.id = db2.comments.username_id
`).Scan(&username)

您当然可以简单地db2.comments使用第二个数据库连接获取所有条目,并使用查询中的值来db1.users. 当然,不推荐这样做,因为它是数据库服务器的工作,它很可能比你做得更好。

于 2013-09-26T00:01:15.937 回答