Is there a way other than SQL to cross-join two tables (Cartesian Product)?
I know that I can use SQL to cross-join two tables. However, that step is only a portion of my dataflow and I would like to use for the rest of the dataflow. Is there a way to cross-join in ETL or do I need to run my cross-join as a separate dataflow in SQL and use the output in my ETL?
Best Answers
-
Hi, @DougG ,
I did this recently. It isn't elegant, but it works just fine.
1) In each of the two tables you want to cross-join, add a whole number constant field using the "Add Constant" tiles. In both cases, assign some dummy value. It doesn't matter what value as long as you use the same value in both tiles.
2) Join the two datasets using your dummy constant fields
Note: this is equivalent to joining two tables in SQL using "on 1 = 1" in the join condition
1 -
I think you would be better off doing the SQL step, but I think it is possible in ETL as follows.
I utilized the tables from the cross join example on w3resource here
After adding these tables using excel upload to function as inputs, I used add constant to the company table of an ITEM_UNIT column containing string 'Pcs', to match the ITEM_UNIT field in the foods table.
I then did a full outer join on the ITEM_UNIT field.
I then did select columns to only return the desired fields of ITEM_NAME, ITEM_UNIT, COMPANY_NAME, and COMPANY_CITY.
This produced what I believe is the desired output.
2
Answers
-
I think you would be better off doing the SQL step, but I think it is possible in ETL as follows.
I utilized the tables from the cross join example on w3resource here
After adding these tables using excel upload to function as inputs, I used add constant to the company table of an ITEM_UNIT column containing string 'Pcs', to match the ITEM_UNIT field in the foods table.
I then did a full outer join on the ITEM_UNIT field.
I then did select columns to only return the desired fields of ITEM_NAME, ITEM_UNIT, COMPANY_NAME, and COMPANY_CITY.
This produced what I believe is the desired output.
**Say 'Thanks' by clicking the thumbs up in the post that helped you.
**Please mark the post that solves your problem as 'Accepted Solution'1 -
I think you would be better off doing the SQL step, but I think it is possible in ETL as follows.
I utilized the tables from the cross join example on w3resource here
After adding these tables using excel upload to function as inputs, I used add constant to the company table of an ITEM_UNIT column containing string 'Pcs', to match the ITEM_UNIT field in the foods table.
I then did a full outer join on the ITEM_UNIT field.
I then did select columns to only return the desired fields of ITEM_NAME, ITEM_UNIT, COMPANY_NAME, and COMPANY_CITY.
This produced what I believe is the desired output.
**Say 'Thanks' by clicking the thumbs up in the post that helped you.
**Please mark the post that solves your problem as 'Accepted Solution'0 -
I think you would be better off doing the SQL step, but I think it is possible in ETL as follows.
I utilized the tables from the cross join example on w3resource here
After adding these tables using excel upload to function as inputs, I used add constant to the company table of an ITEM_UNIT column containing string 'Pcs', to match the ITEM_UNIT field in the foods table.
I then did a full outer join on the ITEM_UNIT field.
I then did select columns to only return the desired fields of ITEM_NAME, ITEM_UNIT, COMPANY_NAME, and COMPANY_CITY.
This produced what I believe is the desired output.
**Say 'Thanks' by clicking the thumbs up in the post that helped you.
**Please mark the post that solves your problem as 'Accepted Solution'0 -
Hi, @DougG ,
I did this recently. It isn't elegant, but it works just fine.
1) In each of the two tables you want to cross-join, add a whole number constant field using the "Add Constant" tiles. In both cases, assign some dummy value. It doesn't matter what value as long as you use the same value in both tiles.
2) Join the two datasets using your dummy constant fields
Note: this is equivalent to joining two tables in SQL using "on 1 = 1" in the join condition
1 -
I think you would be better off doing the SQL step, but I think it is possible in ETL as follows.
I utilized the tables from the cross join example on w3resource here
After adding these tables using excel upload to function as inputs, I used add constant to the company table of an ITEM_UNIT column containing string 'Pcs', to match the ITEM_UNIT field in the foods table.
I then did a full outer join on the ITEM_UNIT field.
I then did select columns to only return the desired fields of ITEM_NAME, ITEM_UNIT, COMPANY_NAME, and COMPANY_CITY.
This produced what I believe is the desired output.
2 -
I think you would be better off doing the SQL step, but I think it is possible in ETL as follows.
I utilized the tables from the cross join example on w3resource here
After adding these tables using excel upload to function as inputs, I used add constant to the company table of an ITEM_UNIT column containing string 'Pcs', to match the ITEM_UNIT field in the foods table.
I then did a full outer join on the ITEM_UNIT field.
I then did select columns to only return the desired fields of ITEM_NAME, ITEM_UNIT, COMPANY_NAME, and COMPANY_CITY.
This produced what I believe is the desired output.
1
Categories
- All Categories
- 2K Product Ideas
- 2K Ideas Exchange
- 1.6K Connect
- 1.3K Connectors
- 311 Workbench
- 6 Cloud Amplifier
- 9 Federated
- 3.8K Transform
- 659 Datasets
- 116 SQL DataFlows
- 2.2K Magic ETL
- 815 Beast Mode
- 3.3K Visualize
- 2.5K Charting
- 82 App Studio
- 45 Variables
- 776 Automate
- 190 Apps
- 481 APIs & Domo Developer
- 82 Workflows
- 23 Code Engine
- 40 AI and Machine Learning
- 20 AI Chat
- 1 AI Playground
- 1 AI Projects and Models
- 18 Jupyter Workspaces
- 410 Distribute
- 120 Domo Everywhere
- 280 Scheduled Reports
- 10 Software Integrations
- 144 Manage
- 140 Governance & Security
- 8 Domo Community Gallery
- 48 Product Releases
- 12 Domo University
- 5.4K Community Forums
- 41 Getting Started
- 31 Community Member Introductions
- 114 Community Announcements
- 4.8K Archive