Maison > développement back-end > Golang > Comment utiliser SQL pour une requête conjointe dans Golang

Comment utiliser SQL pour une requête conjointe dans Golang

PHPz
Libérer: 2023-04-24 10:44:39
original
1003 Les gens l'ont consulté

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)
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal