如何進行反連接?大家好,
一位客戶問我有關反加入的問題。 左反連接,更準確地說:
“A左反加入:此聯接返回左表中的行,這些行在右表中沒有匹配的行。”
( https://mode.com/blog/anti-join-examples/ )
我不知道如何在界面中執行此操作(既不是 JOIN 也不是查詢生成器)。
有人可以啟發我嗎? 
謝謝,
弗洛里安
回复:如何執行反加入?嗨弗洛里安,
比較數據表是否會提供您的用戶所需要的功能?
馬爾科姆
回复:如何執行反加入?這可以分兩步完成。 尋求完全外部聯接(包括主表和“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 ) ) ) ;