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