1

Using the golang example below, how can I query (JOIN) multiple databases. For example, I want to have the relation 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もちろん、2 番目のデータベース接続を使用してからすべてのエントリを取得し、その値をクエリで使用することもできますdb1.users。もちろん、これはデータベース サーバーの仕事であり、おそらくあなたよりも優れているため、お勧めできません。

于 2013-09-26T00:01:15.937 に答える