40 lines
1.2 KiB
SQL
40 lines
1.2 KiB
SQL
-- name: CreateOrUpdateCompetition :exec
|
|
INSERT INTO competitions (
|
|
slug,
|
|
display_name,
|
|
country_slug,
|
|
competition_format,
|
|
competition_type,
|
|
picture_url,
|
|
logo_url
|
|
)
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7) ON CONFLICT (slug)
|
|
DO
|
|
UPDATE
|
|
SET display_name = EXCLUDED.display_name,
|
|
competition_format = EXCLUDED.competition_format,
|
|
competition_type = EXCLUDED.competition_type,
|
|
picture_url = EXCLUDED.picture_url,
|
|
logo_url = EXCLUDED.logo_url,
|
|
country_slug = EXCLUDED.country_slug;
|
|
|
|
-- name: GetCompetitionBySlug :one
|
|
SELECT sqlc.embed(competitions),
|
|
sqlc.embed(zones),
|
|
sqlc.embed(countries)
|
|
FROM competitions
|
|
LEFT JOIN zones ON competitions.zone_id = zones.id
|
|
LEFT JOIN countries ON competitions.country_slug = countries.slug
|
|
WHERE competitions.slug = $1;
|
|
|
|
|
|
-- name: GetAllCompetitions :many
|
|
SELECT sqlc.embed(competitions),
|
|
sqlc.embed(zones),
|
|
sqlc.embed(countries)
|
|
FROM competitions
|
|
LEFT JOIN zones ON competitions.zone_id = zones.id
|
|
LEFT JOIN countries ON competitions.country_slug = countries.slug;
|
|
|
|
|