Comment faire des Anti-Joins ?Salut tout le monde,
un client m'a posé des questions sur les anti-jointures. Une anti-jointure gauche, pour être plus précis :
"UN anti-jointure gauche : cette jointure renvoie les lignes de la table de gauche qui n'ont pas de lignes correspondantes dans la table de droite."
( https://mode.com/blog/anti-join-examples/ )
Je ne pouvais pas comprendre comment faire cela dans l'interface (ni JOIN ni Query Builder).
Quelqu'un pourrait-il m'éclairer s'il vous plait ? 
Merci,
Florian
Re : Comment faire des Anti-Joins ?Bonjour Floriane,
La comparaison des tableaux de données donnerait-elle la fonctionnalité recherchée par votre utilisateur ?
Malcom
Re : Comment faire des Anti-Joins ?Cela pourrait être fait dans un processus en deux étapes. Optez pour une jointure externe complète (incluez les non-correspondances sur la table principale et la table "avec"), mais assurez-vous de cocher la case "Match Flag". La colonne Match Flag créée peut être utilisée pour vous indiquer de quelle table proviennent les données. Les lignes avec uniquement "Main" sont les lignes anti-jointure qu'ils recherchent.
Re : Comment faire des Anti-Joins ?Salut,
Pour moi, c'est un processus en 2 étapes. Effectuez la jointure (y compris les non-correspondances de la table principale) puis sélectionnez les lignes où une valeur de la table "avec" est manquante/vide. Ces lignes sélectionnées doivent être les lignes où il n'y a pas de correspondances dans la table principale.
Cela semble correspondre à la solution dans le billet de blog mentionné.
Re : Comment faire des Anti-Joins ?Merci à tous! Je pense que c'est la voie à suivre @Dan_Obermiller @Ryan_Gilmore . Excellente suggestion aussi @malcolm_moore1 , n'y avait même pas pensé, mais cela pourrait aussi être utile !
Meilleur
Florian
Re : Comment faire des Anti-Joins ?Cela peut être un peu compliqué, mais vous pouvez faire une requête SQL personnalisée comme :
SELECT *
FROM "jmptable " t1
WHERE t1.IDcolumn NOT IN (SELECT t2.IDcolumn FROM "jmptable2" t2);
Où jmptable est le nom de la première table, jmptable2 est le nom de la deuxième table, IDcolumn est la clé de la première table et de la deuxième table.
Vous pouvez utiliser JMP Query Builder sous les tables. Sélectionnez les deux tables, utilisez la jointure externe gauche standard sur les deux tables, puis cliquez sur construire une requête. Après cela, allez trop triangle rouge et choisissez convertir en SQL personnalisé et utilisez le code ci-dessus.
Ou vous pouvez écrire le JSL directement.
Je pense que c'est une bonne liste pour prendre en charge plus de types de jointures dans les plates-formes Query Builder et Join.
Re : Comment faire des Anti-Joins ?Bonjour Floriane,
À l'aide de JMP Query Builder, vous effectuez une jointure gauche avec t1 et t2. où t1.id = t2.id et utiliser la clause where sur t2.id est nulle.
Cette requête renverra uniquement les valeurs de la table 1 (t1) mais pas de la table 2( t2).
acclamations,
Stan
Anti-Join with JMP Query BuilderAnti-Join with JMP Query BuilderAnti-jointure avec JMP Query Builder
SELECT t1.id, t1.t1_value
FROM "untitled 1201" t1
LEFT OUTER JOIN "untitled 1202" t2
ON ( t1.id = t2.id )
WHERE ( ( ( t2.id IS NULL ) ) ) ;