Wie führt man Anti-Joins durch?Hallo alle,
Ein Kunde hat mich nach Anti-Joins gefragt. Ein linker Anti-Join, um genauer zu sein:
"A Linker Anti-Beitritt : Dieser Join gibt Zeilen in der linken Tabelle zurück, die keine übereinstimmenden Zeilen in der rechten Tabelle haben."
( https://mode.com/blog/anti-join-examples/ )
Ich konnte nicht herausfinden, wie man das in der Schnittstelle macht (weder JOIN noch Query Builder).
Könnte mich bitte jemand aufklären? 
Danke,
Florian
Betreff: Wie führt man Anti-Joins durch?Hallo Florian,
Würde der Vergleich von Datentabellen die Funktionalität bieten, nach der Ihr Benutzer sucht?
Malcolm
Betreff: Wie führt man Anti-Joins durch?Dies könnte in einem zweistufigen Verfahren erfolgen. Entscheiden Sie sich für einen vollständigen Outer-Join (schließen Sie Nichtübereinstimmungen sowohl in der Haupt- als auch in der „with“-Tabelle ein), aber stellen Sie sicher, dass Sie das Kontrollkästchen „Match Flag“ aktivieren. Anhand der erstellten Match-Flag-Spalte können Sie feststellen, aus welcher Tabelle die Daten stammen. Die Zeilen mit nur "Main" sind die Anti-Join-Zeilen, nach denen sie suchen.
Betreff: Wie führt man Anti-Joins durch?Hallo,
Für mich ist es ein 2-Stufen-Prozess. Führen Sie den Join durch (einschließlich Nichtübereinstimmungen aus der Haupttabelle) und wählen Sie dann die Zeilen aus, in denen ein Wert aus der „with“-Tabelle fehlt/leer ist. Diese ausgewählten Zeilen sollten die Zeilen sein, in denen es keine Übereinstimmungen in der Haupttabelle gibt.
Dies scheint mit der Lösung im erwähnten Blogbeitrag übereinzustimmen.
Betreff: Wie führt man Anti-Joins durch?Danke euch allen! Ich denke, das ist der richtige Weg @Dan_Obermiller @Ryan_Gilmore . Auch toller Vorschlag @malcolm_moore1 , hat nicht einmal darüber nachgedacht, könnte aber auch wertvoll sein!
Am besten
Florian
Betreff: Wie führt man Anti-Joins durch?Dies kann etwas kompliziert sein, aber Sie könnten eine benutzerdefinierte SQL-Abfrage wie folgt durchführen:
SELECT *
FROM "jmptable " t1
WHERE t1.IDcolumn NOT IN (SELECT t2.IDcolumn FROM "jmptable2" t2);
Wobei jmptable der Name der ersten Tabelle ist, jmptable2 der Name der zweiten Tabelle ist, IDcolumn der Schlüssel für die erste Tabelle und die zweite Tabelle ist.
Sie könnten JMP Query Builder unter Tabellen verwenden. Wählen Sie die beiden Tabellen aus, verwenden Sie den standardmäßigen Left Outer Join für die beiden Tabellen und klicken Sie dann auf Abfrage erstellen. Gehen Sie danach zu einem roten Dreieck und wählen Sie „In benutzerdefiniertes SQL konvertieren“ und verwenden Sie den obigen Code.
Oder Sie könnten die JSL direkt schreiben.
Ich denke, dies ist eine gute Liste, um mehr Arten von Joins in Query Builder- und Join-Plattformen zu unterstützen.
Betreff: Wie führt man Anti-Joins durch?Hallo Florian,
Mit JMP Query Builder führen Sie eine Linksverknüpfung mit t1 und t2 durch. where t1.id = t2.id und verwenden Sie where-Klausel auf der t2.id ist null.
Diese Abfrage gibt nur Werte in Tabelle 1 (t1), aber nicht in Tabelle 2 (t2) zurück.
Beifall,
Stan
Anti-Join with JMP Query BuilderAnti-Join with JMP Query BuilderAnti-Join mit 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 ) ) ) ;