Update pgsql join update

This commit is contained in:
sunkaixuan
2024-07-03 16:44:12 +08:00
parent 3d88baebff
commit 1df02dfc45

View File

@@ -237,6 +237,10 @@ namespace SqlSugar
}
protected override string GetJoinUpdate(string columnsString, ref string whereString)
{
if (this.JoinInfos?.Count > 1)
{
return this.GetJoinUpdateMany(columnsString);
}
var formString = $" {Builder.GetTranslationColumnName(this.TableName)} AS {Builder.GetTranslationColumnName(this.ShortName)} ";
var joinString = "";
foreach (var item in this.JoinInfos)
@@ -248,6 +252,22 @@ namespace SqlSugar
columnsString = columnsString.Replace(Builder.GetTranslationColumnName(this.ShortName)+".","")+joinString;
return string.Format(SqlTemplate, tableName, columnsString, whereString);
}
private string GetJoinUpdateMany(string columnsString)
{
var formString = $" {Builder.GetTranslationColumnName(this.TableName)} AS {Builder.GetTranslationColumnName(this.ShortName)} ";
var joinString = "";
var i = 0;
foreach (var item in this.JoinInfos)
{
var whereString = " ON " + item.JoinWhere;
joinString += $"\r\n JOIN {Builder.GetTranslationColumnName(item.TableName)} {Builder.GetTranslationColumnName(item.ShortName)} ";
joinString = joinString + whereString;
i++;
}
var tableName = Builder.GetTranslationColumnName(this.TableName) + "\r\n ";
columnsString = columnsString.Replace(Builder.GetTranslationColumnName(this.ShortName) + ".", "") + $" FROM {Builder.GetTranslationColumnName(this.TableName)} {Builder.GetTranslationColumnName(this.ShortName)}\r\n " + joinString;
return string.Format(SqlTemplate, tableName, columnsString, null);
}
public override string FormatDateTimeOffset(object value)
{
return "'" + ((DateTimeOffset)value).ToString("o") + "'";