Co to jest left anti join?

Problem:

Posiadasz rozwiązanie działające w Databricks.

Jak wybrać z tabeli z zamówieniami tylko rekordy, które nie mają przypisanych klientów albo klienci, z jakiegoś powodu nie istnieją. Rozwiązanie zbuduj w oparciu o SQL’a.

Rozwiązanie:

Rozwiązanie pierwsze:

select o.* from d_order o
left join d_customer c on (o.customer_tk = c.customer_tk)
where c.coustomer_tk is null

Albo

select o.* from d_order o
left anti join d_customer c on (o.customer_tk = c.customer_tk)

To są równoznaczne zapytania. Ich rezultatem jest ten sam zbiór danych, różnią się tylko składnią.

Warto zauważyć, że to drugie z użyciem słowa kluczowego anti jest bardziej zwięzłe. Natomiast, gdy ten kod SQL próbujesz migrować na inną platformę, wtedy może nie zadziałać.

Read More