如何进行反连接?大家好,
一位客户问我有关反加入的问题。 左反连接,更准确地说:
“A左反加入:此联接返回左表中的行,这些行在右表中没有匹配的行。”
( https://mode.com/blog/anti-join-examples/ )
我不知道如何在界面中执行此操作(JOIN 和 Query Builder 都没有)。
有人可以启发我吗? 
谢谢,
弗洛里安
回复:如何执行反加入?嗨弗洛里安,
比较数据表是否会提供您的用户所需要的功能?
马尔科姆
回复:如何执行反加入?这可以分两步完成。 寻求完全外部联接(包括主表和“with”表上的不匹配项),但一定要选中“Match Flag”复选框。 创建的 Match Flag 列可用于告诉您数据来自哪个表。 只有“Main”的行是他们要查找的反连接行。
回复:如何执行反加入?你好,
对我来说,这是一个两步过程。 执行连接(包括来自主表的不匹配项),然后选择“with”表中的值缺失/为空的行。 这些选定的行应该是主表中没有匹配项的行。
这似乎与提到的博客文章中的解决方案相匹配。
回复:如何执行反加入?谢谢你们! 我认为这是要走的路@Dan_Obermiller @Ryan_Gilmore . 还有很好的建议@malcolm_moore1 ,甚至没有想到这一点,但也很有价值!
最好的
弗洛里安
回复:如何执行反加入?这可能有点令人费解,但您可以执行自定义 SQL 查询,例如:
SELECT *
FROM "jmptable " t1
WHERE t1.IDcolumn NOT IN (SELECT t2.IDcolumn FROM "jmptable2" t2);
其中 jmptable 是第一个表的名称,jmptable2 是第二个表的名称,IDcolumn 是第一个表和第二个表的键。
您可以在表下使用 JMP 查询生成器。 选择这两个表,对这两个表使用标准的左外连接,然后单击构建查询。 之后,转到红色三角形并选择转换为自定义 SQL 并使用上面的代码。
或者您可以直接编写 JSL。
我认为这是一个很好的列表,可以支持 Query Builder 和 Join 平台中更多类型的连接。
回复:如何执行反加入?嗨弗洛里安,
使用 JMP 查询构建器,您可以执行与 t1 和 t2 的左连接。 where t1.id = t2.id 并在 t2.id 上使用 where 子句为空。
此查询将仅返回表 1 (t1) 中的值,而不返回表 2(t2) 中的值。
干杯,
斯坦
Anti-Join with JMP Query BuilderAnti-Join with JMP Query Builder使用 JMP 查询生成器进行反连接
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 ) ) ) ;