github.com/systematiccaos/gorm@v1.22.6/clause/from.go (about)

     1  package clause
     2  
     3  // From from clause
     4  type From struct {
     5  	Tables []Table
     6  	Joins  []Join
     7  }
     8  
     9  // Name from clause name
    10  func (from From) Name() string {
    11  	return "FROM"
    12  }
    13  
    14  // Build build from clause
    15  func (from From) Build(builder Builder) {
    16  	if len(from.Tables) > 0 {
    17  		for idx, table := range from.Tables {
    18  			if idx > 0 {
    19  				builder.WriteByte(',')
    20  			}
    21  
    22  			builder.WriteQuoted(table)
    23  		}
    24  	} else {
    25  		builder.WriteQuoted(currentTable)
    26  	}
    27  
    28  	for _, join := range from.Joins {
    29  		builder.WriteByte(' ')
    30  		join.Build(builder)
    31  	}
    32  }
    33  
    34  // MergeClause merge from clause
    35  func (from From) MergeClause(clause *Clause) {
    36  	clause.Expression = from
    37  }