Join Tables¶
Data > Join tables... (Ctrl+Shift+Q) matches rows between two open tabs, like a spreadsheet VLOOKUP or a SQL JOIN. You need a second table open in another tab first; otherwise Octa shows a reminder in the status bar.
How it works¶
Pick the left table and the right table, then add one or more conditions. Each condition pairs any column of the left table with any column of the right table through an operator:
= equal, < less than, <= less or equal, > greater than, >= greater
or equal.
The columns do not need the same name, and their types do not need to
match - Octa converts both sides to a common type before comparing (numbers
when both are numeric, otherwise text). So you can join a numeric id
against a text ref, or keep rows where one table's date is >= another's.
Add several conditions to require all of them (an AND join).
Then pick the join type:
- Inner - keep only rows that match.
- Left - keep every row of the left table, filling unmatched right columns with empty cells.
- Right - keep every row of the right table.
- Full - keep every row of both.
The matched result opens in a new tab. Joins run through DuckDB, so they are fast even on large tables.
Command line and assistant¶
The command-line octa --join (see the --join
reference) and the join_tables MCP /
assistant tool join on shared column names with equality (--join-on).
The in-app dialog is the place for different column names or non-equal
operators. To stack tables vertically instead, use
Union Tables.