Open2
Tips:golang-squirrelでUNION,JOIN
このISSUEのalessandrozucca-pさん(Nov 12, 2024)のやり方の焼き直しだが...
unionBuilder := firstBuilder.PrefixExpr(
secondBuilder.Suffix("UNION ALL")
).
Offset(25).
Limit(25).
OrderBy(order, "sort_posted_at DESC", "sort1 DESC", "sort2 ASC")
Prefix、Suffix系の関数を組み合わせることで自然とUNION句を結合させることが可能。
SQLのPlaceholderもちゃんと動く。
サブクエリをJOIN
JoinClause関数でサブクエリのビルダーにPrefixとSufixでJOIN固定文字を付けて結合
// サブクエリ
subBuilder := squirrel.Select("*").From('product')
// メインクエリ
mainBuilder := squirrel.Select("*").
From("content").
JoinClause(
subBuilder.Prefix("LEFT JOIN(").
Suffix(") AS product ON product.id = content.product_id"),
)