Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
// Copyright 2019 The Xorm Authors. All rights reserved. |
|
// Use of this source code is governed by a BSD-style |
|
// license that can be found in the LICENSE file. |
|
|
|
package builder |
|
|
|
// InnerJoin sets inner join |
|
func (b *Builder) InnerJoin(joinTable, joinCond interface{}) *Builder { |
|
return b.Join("INNER", joinTable, joinCond) |
|
} |
|
|
|
// LeftJoin sets left join SQL |
|
func (b *Builder) LeftJoin(joinTable, joinCond interface{}) *Builder { |
|
return b.Join("LEFT", joinTable, joinCond) |
|
} |
|
|
|
// RightJoin sets right join SQL |
|
func (b *Builder) RightJoin(joinTable, joinCond interface{}) *Builder { |
|
return b.Join("RIGHT", joinTable, joinCond) |
|
} |
|
|
|
// CrossJoin sets cross join SQL |
|
func (b *Builder) CrossJoin(joinTable, joinCond interface{}) *Builder { |
|
return b.Join("CROSS", joinTable, joinCond) |
|
} |
|
|
|
// FullJoin sets full join SQL |
|
func (b *Builder) FullJoin(joinTable, joinCond interface{}) *Builder { |
|
return b.Join("FULL", joinTable, joinCond) |
|
} |
|
|
|
// Join sets join table and conditions |
|
func (b *Builder) Join(joinType string, joinTable, joinCond interface{}) *Builder { |
|
switch joinCond.(type) { |
|
case Cond: |
|
b.joins = append(b.joins, join{joinType, joinTable, joinCond.(Cond)}) |
|
case string: |
|
b.joins = append(b.joins, join{joinType, joinTable, Expr(joinCond.(string))}) |
|
} |
|
|
|
return b |
|
}
|
|
|