Cette fonctionnalité est probablement la plus avancée, pratique et puissante !
Cas d'usage :
- Comparer 2 bases de données pour contrôler leur intégrité
- Récupérer les données issues de différentes Sources pour compléter un Datawarehouse
- Créer un jeu de données unique, contenant des données en provenance de différents logiciels
Comment ça fonctionne
Comme toujours, cela commence par une requête simple.
Si on se place dans le contexte d'une base de données simple, et que nous voulons un SELECT contenant des données issues de plusieurs tables, nous allons utiliser les jointures (JOIN).
C'est plus ou moins comme ceci que les requêtes croisées fonctionnent.
Dans cet exemple, je vais vous présenter une requête croisée entre 3 bases de données sans lien, mais on peut également mixer avec des données issues de fichiers, webservices... N'importe quel type de connexion fonctionne !
- Créez une nouvelle requête. Celle-ci sera associée à une connexion MySQL. Un clic droit fait apparaître le menu contextuel :

2. Dans le menu, choisissez une nouvelle connexion :

3. Le script sera automatiquement ajouté à la requête originale :

4. Vous pouvez alors compléter la requête initiale par une autre, à la suite du script. Celle-ci sera associée à la base de données Postgres : la syntaxe Postgres s'applique. Un clic droit sur la requête pour ouvrir le menu contextuel :

5. La requête croisée n'est pas quelque chose de magique : le lien entre les Sources s'effectue en utilisant les noms de champ identiques. Cela implique d'avoir des champs communs entre les requêtes.
5.1 Si vous n'avez pas de champs aux noms communs, vous pouvez utiliser les alias :
Première requête : SELECT id_sample, li_sample FROM mytable
Deuxième requête : SELECT mycolumn as id_sample, dt_date FROM mytable
5.2 Si vous voulez forcer le lien, le script peut être modifié :

Vous pouvez ajouter plusieurs champs : [-id_sample,id_another_field-[12]]
6. Vous pouvez contrôler le comportement d'une requête croisée dans le menu contextuel :

7. Vous pouvez aussi tester le lien. Fuzible testera les 2 requêtes séparément et contrôlera la syntaxe :

8. A présent, je vais ajouter une nouvelle requête jointe, utilisant une BDD MariaDB :

Un alias est utilisé pour créer le lien avec le reste (FirstColumn -> id_sample)
9. Testons la requête en appuyant sur "F5" :

Requête croisée conditionnelle (fonction avancée)
Cas d'usage :
- Contrôle d'intégrité entre 2 bases de données
Dans le cas ou vous ne voudriez récupérer que les différences qui existent entre 2 bases de données (ou autre Source), vous pouvez écrire une ou plusieurs condition(s) spéciale(s) dans la requête croisée. C'est ce que ferait une jointure OUTER filtrée dans le cas d'une requête entre plusieurs tables.

Sans le filtre, on récupèrerait toutes les lignes qui "matchent" entre les 2 Sources :

Avec le filtre, on ne récupère que les lignes qui "matchent" conformément au filtre appliqué
