From a6e4092b3b8c81078fdab7e27dd32e940b258a2b Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 8 Mar 2020 09:48:25 +0800 Subject: [PATCH] Fix find alias bug --- internal/statements/statement.go | 14 +++++++++----- session_find_test.go | 10 ++++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/internal/statements/statement.go b/internal/statements/statement.go index e8675443..f8cb6f2d 100644 --- a/internal/statements/statement.go +++ b/internal/statements/statement.go @@ -35,9 +35,8 @@ var ( // Statement save all the sql info for executing SQL type Statement struct { - RefTable *schemas.Table - dialect dialects.Dialect - //Engine *Engine + RefTable *schemas.Table + dialect dialects.Dialect defaultTimeZone *time.Location tagParser *tags.Parser Start int @@ -985,8 +984,13 @@ func (statement *Statement) joinColumns(cols []*schemas.Column, includeTableName func (statement *Statement) CondDeleted(col *schemas.Column) builder.Cond { var colName = col.Name if statement.JoinStr != "" { - colName = statement.quote(statement.TableName()) + - "." + statement.quote(col.Name) + var prefix string + if statement.TableAlias != "" { + prefix = statement.TableAlias + } else { + prefix = statement.TableName() + } + colName = statement.quote(prefix) + "." + statement.quote(col.Name) } var cond = builder.NewCond() if col.SQLType.IsNumeric() { diff --git a/session_find_test.go b/session_find_test.go index 28ba1d60..c16d0a1b 100644 --- a/session_find_test.go +++ b/session_find_test.go @@ -794,6 +794,16 @@ func TestMoreExtends(t *testing.T) { Limit(10, 10). Find(&books) assert.NoError(t, err) + + books = make([]MoreExtendsBooksExtend, 0, len(books)) + err = testEngine.Table("more_extends_books"). + Alias("m"). + Select("m.*, more_extends_users.*"). + Join("INNER", "more_extends_users", "m.user_id = more_extends_users.id"). + Where("m.name LIKE ?", "abc"). + Limit(10, 10). + Find(&books) + assert.NoError(t, err) } func TestDistinctAndCols(t *testing.T) {