本文档是 xb/doc/CUSTOM_JOINS_GUIDE.md 的中文版本。它解释了如何扩展 xb 的 JOIN DSL 以支持方言特定的语法,例如 ClickHouse GLOBAL JOIN 或 ASOF JOIN。
const (
inner_join = "INNER JOIN"
left_join = "LEFT JOIN"
right_join = "RIGHT JOIN"
cross_join = "CROSS JOIN"
asof_join = "ASOF JOIN"
global_join = "GLOBAL JOIN"
full_outer_join = "FULL OUTER JOIN"
)
使用 FromX(func(*FromBuilder)) 和 JOIN(kind) 辅助方法来组合多步骤管道。
func LATERAL() xb.JOIN {
return func() string {
return "LATERAL JOIN"
}
}
func (fb *FromBuilder) Lateral(...))。Cond(func(*ON)) 来定义谓词;这保持自动过滤完整。GLOBAL、FINAL 等),通过 FromX 配置暴露它们,以便链的其余部分保持可移植。更多模式请参阅 doc/cn/BUILDER_BEST_PRACTICES.md。