Dans Golang, l'instruction de requête conjointe SQL utilise plusieurs instructions de requête SQL pour se combiner en un ensemble de résultats de requête. Grâce à cette méthode, deux tables ou plus peuvent être interrogées conjointement et l'efficacité de la requête peut être améliorée. Cet article explique comment utiliser Golang pour effectuer des requêtes syndicales en SQL.
Qu'est-ce qu'une requête d'union SQL ?
SQL Union Query fait référence au processus de combinaison des ensembles de résultats de deux ou plusieurs instructions SELECT en un seul ensemble de résultats. Le nombre de colonnes, l'ordre des colonnes et les types de colonnes interrogés dans la requête agrégée doivent être exactement les mêmes. La requête Union est une méthode de requête relativement efficace qui améliore l'efficacité des requêtes en combinant plusieurs instructions de requête au lieu de plusieurs requêtes.
En SQL, les requêtes union sont implémentées à l'aide de l'opérateur UNION. L'opérateur UNION combine deux jeux de résultats et supprime les lignes en double. Si vous souhaitez conserver les lignes en double, vous pouvez utiliser l'opérateur UNION ALL.
Requête Union dans Golang
Lors de l'utilisation de SQL dans Golang pour effectuer une requête union, nous devons d'abord nous connecter à la base de données et utiliser des instructions SQL pour exécuter la requête union. Dans cet exemple, nous utiliserons la bibliothèque ORM du langage Go GORM pour nous connecter à la base de données MySQL et utiliserons une requête union pour récupérer les données des deux tables.
Pour implémenter une requête d'union SQL à l'aide de GORM, nous devons appeler la fonction Model pour créer deux objets de modèle différents et utiliser la fonction Select pour les combiner. La fonction Select sélectionne les colonnes à récupérer et enregistre les résultats dans un nouvel objet modèle.
Ce qui suit est un exemple d'implémentation d'une requête d'union SQL à l'aide des bibliothèques Golang et GORM :
package main import ( "fmt" "time" "gorm.io/driver/mysql" "gorm.io/gorm" ) type User struct { ID uint `gorm:"primary_key"` Name string Age int Email string CreatedAt time.Time } type Order struct { ID uint `gorm:"primary_key"` UserID uint Amount float64 CreatedAt time.Time } func main() { dsn := "user:password@tcp(localhost:3306)/database_name?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { panic("failed to connect database") } var users []User db.Model(&User{}).Select("users.name, orders.amount").Joins("inner join orders on orders.user_id = users.id").Find(&users) fmt.Println(users) }
Dans l'exemple de code ci-dessus, nous définissons d'abord deux objets de modèle : Utilisateur et Commande. Nous nous sommes ensuite connectés à une base de données MySQL nommée "database_name" et avons créé un nouvel objet modèle nommé "users" à l'aide de la fonction Model de GORM. Dans la fonction Select, nous sélectionnons les colonnes qui doivent être récupérées et définissons une requête de jointure interne dans la fonction Joins. Enfin, nous utilisons la fonction Rechercher pour enregistrer les résultats de la requête dans une tranche appelée « utilisateurs » et les imprimer sur le terminal.
Conclusion
Dans Golang, nous pouvons utiliser la bibliothèque ORM GORM pour nous connecter à la base de données MySQL et effectuer des requêtes d'union SQL. Utilisez des requêtes conjointes pour combiner les données de plusieurs tables et améliorer l'efficacité des requêtes. En utilisant l'exemple de code ci-dessus, l'implémentation de requêtes Union SQL dans vos applications deviendra plus facile et plus efficace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!