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é
