• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

125
Vistas
go-pg UnionAll - limita toda la expresión

Estoy tratando de usar el método .UnionAll en la biblioteca go-pg para golang.

 var model []Customer q0 := db.Model(&model).Where("name = ?", name0).Limit(4) q1 := db.Model(&model).Where("name = ?", name1).Limit(3) var result []Customer if err := q0.UnionAll(q1).Limit(1).Select(&result); !as.NoError(err) { return }

Este código produce la consulta:

 (SELECT "customer"."id", "customer"."name" FROM customers AS "customer" WHERE (name = 'customer 1deificatory zonoid reprepare alacrify serenissime') LIMIT 1) UNION ALL (SELECT "customer"."id", "customer"."name" FROM customers AS "customer" WHERE (name = 'customer 2fordless ferroboron radiability dandizette smutch' LIMIT 3) )

Pero espero que sea:

 (SELECT "customer"."id", "customer"."name" FROM customers AS "customer" WHERE (name = 'customer 1deificatory zonoid reprepare alacrify serenissime') LIMIT 4) UNION ALL (SELECT "customer"."id", "customer"."name" FROM customers AS "customer" WHERE (name = 'customer 2fordless ferroboron radiability dandizette smutch') LIMIT 3) LIMIT 1

Entonces, ¿cómo usar go-pg para obtener una consulta SQL sin formato que espero? El problema es que no puedo aplicar la expresión Limit 1 a toda la consulta por algún motivo. Además, mi Limit 4 no se aplica correctamente a la primera union all miembros. Mi código completo está aquí .

about 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Creo que esta consulta te sirve.

 if err := db.Model().With("union_q", q0.UnionAll(q1)).Table("union_q").Limit(1).Select(&result); !as.NoError(err) { return }

La consulta no es exactamente lo que querías y, que yo sepa, la versión actual de go-pg no puede generar esa consulta. Pero esta consulta hace exactamente lo que querías.

about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda