Joining based on conditions in Magic ETL

Can we make joins based on conditions in Magic ETL? e.g. I want to replicate the below in a join in magic ETL. Can I do it?

 

SELECT

dataset_1.*

dataset_2.*

FROM dataset_1

LEFT JOIN `dataset_2` on
(dataset_2.id` IS NULL
AND `dataset_1`.`Day` >= COALESCE(dataset_2.date`,dataset_1.date`) )

Comments

  • Hi @user022825 

    Currently you can't exactly do conditional joins with Magic ETL. You'd need to create a single (or multiple) columns you can join on and then do your filtering / conditional join logic after the join has been done.

     

    Simply put there isn't an easy way of doing this type of join with Magic ETL. There are possible other ways but it would involve greatly increasing your dataset size thus increasing your processing speed.

     

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • if the datasets are of reasonable size you can do a cross apply on dataset A to dataset B (join where 1 = 1) then use a FILTER tile to remove rows that don't meet your JOIN criteria. 

     

    It's not great, but it gets the job done.

    Jae Wilson
    Check out my 🎥 Domo Training YouTube Channel 👨‍💻

    **Say "Thanks" by clicking the ❤️ in the post that helped you.
    **Please mark the post that solves your problem by clicking on "Accept as Solution"