From 12f16f11b22f83eabd89c2a6a72937d5901e97c1 Mon Sep 17 00:00:00 2001 From: Leen van Besien Date: Mon, 21 Dec 2020 13:28:15 +0300 Subject: [PATCH] Use tablename from provided model when querying WHERE with a struct argument --- statement.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/statement.go b/statement.go index 707e4aef..60fc57c1 100644 --- a/statement.go +++ b/statement.go @@ -315,10 +315,11 @@ func (stmt *Statement) BuildCondition(query interface{}, args ...interface{}) [] for _, field := range s.Fields { if field.Readable { if v, isZero := field.ValueOf(reflectValue); !isZero { + tableName := field.Schema.Table if field.DBName != "" { - conds = append(conds, clause.Eq{Column: clause.Column{Table: clause.CurrentTable, Name: field.DBName}, Value: v}) + conds = append(conds, clause.Eq{Column: clause.Column{Table: tableName, Name: field.DBName}, Value: v}) } else if field.DataType != "" { - conds = append(conds, clause.Eq{Column: clause.Column{Table: clause.CurrentTable, Name: field.Name}, Value: v}) + conds = append(conds, clause.Eq{Column: clause.Column{Table: tableName, Name: field.Name}, Value: v}) } } }