-- name: CreateCategoryGroup :one INSERT INTO category_groups (name, budget_id) VALUES ($1, $2) RETURNING *; -- name: GetCategoryGroups :many SELECT category_groups.* FROM category_groups WHERE category_groups.budget_id = $1; -- name: CreateCategory :one INSERT INTO categories (name, category_group_id) VALUES ($1, $2) RETURNING *; -- name: GetCategories :many SELECT categories.*, category_groups.name as group FROM categories INNER JOIN category_groups ON categories.category_group_id = category_groups.id WHERE category_groups.budget_id = $1 ORDER BY category_groups.name, categories.name; -- name: SearchCategories :many SELECT CONCAT(category_groups.name, ' : ', categories.name) as name, categories.id FROM categories INNER JOIN category_groups ON categories.category_group_id = category_groups.id WHERE category_groups.budget_id = @budget_id AND categories.name LIKE @search ORDER BY category_groups.name, categories.name; --ORDER BY levenshtein(payees.name, $2);