Query Builder
✓ functionalA visual query builder - tables as cards, foreign-key join lines, and live SQL.
A visual query builder in three columns: a filterable table list on the left, a canvas of draggable table cards in the middle, and a clause panel on the right. Click a table to add it - it arrives with an alias, checkboxes per column for the SELECT list, and any foreign-key joins to tables already on the canvas suggested automatically. Join lines draw solid when they came from a real foreign key and dashed when you added them by hand, labeled with the join kind.
The clause panel covers Joins (click to cycle INNER → LEFT → RIGHT → FULL), Columns (with aggregate cycling through COUNT, SUM, AVG, MIN, MAX and per-column aliases), Where, Group by, Order by, Limit, and a DISTINCT switch. Beneath it, a Preview section shows the formatted SQL updating live, dimmed with a specific reason - no columns picked, disconnected table, aggregates without a GROUP BY - whenever it is not yet a valid query. Insert into editor and Run both hand the SQL to the workbench; the builder itself never executes anything.

Joins when there are no foreign keys
Legacy schemas and data warehouses often declare no foreign keys at all. When a table you add has no declared relationship to the others, the optional decision model can suggest likely join columns: dimmed “Inferred (…%)” entries in the Joins panel, each clearly marked with its probability, and never applied until you accept them. Suggestions send only the names of the tables and their columns to TypeSafe AI; with the model off - the default - nothing is sent and joins come only from declared foreign keys.
The generated SQL is dialect-correct: identifiers quoted per engine, TOP (n) on SQL Server versus LIMIT n elsewhere, and a FULL JOIN on MySQL degrades to a LEFT JOIN with a comment saying so.