About Join CSV Files With SQL
This page opens with an INNER JOIN of the sample orders and customers tables on customers.id = orders.customer_id, so each order shows its customer name. Add your own files to join them the same way. It is free, needs no sign-up and runs in your browser, so nothing you enter is uploaded.
The join returns 10 rows, one per order, because every order matches one customer. An INNER JOIN keeps only rows with a match on both sides; use LEFT JOIN to keep every row of the first table even when there is no match. Check the row count after a join: duplicate keys on both sides multiply rows.
How to use Join CSV Files With SQL
- Look at the Tables list to see the sample tables and their columns, or add your own CSV, TSV, XLSX, XLS or ODS files.
- Write a query in the SQL box, using the table and column names shown in the list.
- Press Run, or use Ctrl or Cmd with Enter.
- Read the result table below, move between pages if there are many rows, and download it as CSV.
- Remove a table with the cross, or add more files to join them.
Features
- SQLite running as WebAssembly in a Web Worker, served from this site.
- Several tables at once, so you can join files.
- CSV, TSV, XLSX, XLS and ODS input, one table per file or sheet.
- Column types detected from the data, blank cells stored as NULL.
- Results with paging, and an export of the full result as CSV.
- A time limit on queries, so a runaway query is stopped and your tables are reloaded.
- Clear SQL error messages from the engine.
Worked examples
FROM orders o INNER JOIN customers c ON c.id = o.customer_id gives 10 rows
Ten orders, each with one customer.
Privacy: how it works
- Files are read in this browser tab and loaded into an in-memory database that disappears when you close the page. Nothing is uploaded, and the SQL engine file comes from this site, not from a CDN.
Tips
- Table and column names are cleaned to letters, digits and underscores, so "First Name" becomes First_Name.
- Use LIMIT while you are exploring a big table.
- Quote text with single quotes: WHERE country = 'UK'. Double quotes are for names.
- To check a join, count rows before and after. A join on a column with duplicates can multiply rows.
Frequently asked questions
Is it really free?
Yes. There is no price, no trial and no credit card. Ulkaa Tool does the work with your own device, so there is no server bill to pass on to you.
Do I need an account?
No. There is no sign-up and no login. Open the page and use it. An Ulkaa account is not needed for anything on this tool.
Does it run in my browser?
Yes. Your files and queries are processed by code running in your browser tab, on your own device.
Is my data uploaded?
No. Your files and queries are never sent to Ulkaa or to anyone else. You can check this yourself by watching the Network tab in your browser developer tools while you use the tool.
How do I keep rows that have no match?
Use LEFT JOIN. Rows from the left table with no match get NULL in the right table's columns.
More Run SQL on CSV pages
- Run SQL on CSVLoad CSV or Excel files as tables, write SQL and see the results.
- GROUP BY on a CSVSummarise a CSV file by category with a SQL GROUP BY query.
- Filter a CSV With SQLKeep only the rows that meet your conditions.
- Sort a CSV With SQLOrder rows by any column and keep the top few.
- Unique Values in a CSVList each value of a column once.