Exécuter des requêtes de base de données basées sur les données d'une autre base de données
Pour exécuter une requête dans une base de données en fonction des résultats d'une requête provenant d'une autre base de données base de données, plusieurs approches peuvent être utilisées :
Transformation de recherche
Par en ajoutant une transformation de recherche, vous pouvez récupérer la liste des identifiants de la première base de données. La requête dans la recherche doit renvoyer la colonne ID. Bien que cette méthode fournisse les valeurs de recherche, elle ne filtre pas les lignes en fonction des identifiants obtenus.
Pour filtrer les lignes avec la condition IN, utilisez les options de sortie d'erreur de recherche :
Tâche de script
Pour éviter de charger toutes les données, utilisez une tâche de script. Cette technique fonctionne en mémoire et peut créer une liste d'identifiants séparés par des virgules pour la comparaison IN. La commande SQL résultante est stockée dans une variable et utilisée comme source pour les opérations ultérieures.
Exécuter la tâche SQL
En utilisant une tâche d'exécution SQL, créez la clause IN de manière dynamique . La requête génère un jeu de résultats unique contenant la commande SQL modifiée avec les ID séparés par des virgules. Cet ensemble de résultats sert de source pour la tâche DataFlow suivante.
Pensez à la gestion des types de données, en particulier lorsqu'il s'agit de valeurs de chaîne. Placez les valeurs de chaîne entre guillemets simples pour éviter les vulnérabilités d’injection SQL. De plus, assurez-vous que la propriété Delay Validation de la tâche DataFlow est définie sur True pour une exécution correcte des requêtes dynamiques.
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!