有歧义的列名[ID] 返回
怎么样表达式多表查询取别名?
热忱回答(6)
-
null VIP01个月前
在MySQL当中不会出现这样的情况,切换为达梦数据库会出现这样的错误
0 回复 -
fate sta VIP01个月前
升级sqlsugar到最新试试,还有问题需要提供DEMO
0 回复 -
null VIP01个月前
@fate sta:语法上有啥办法避免吗?
0 回复 -
null VIP01个月前
@fate sta:
var query = _rep.AsQueryable()
.LeftJoin<TbLineLevel>((line, level) => line.Pid == level.Id )
.WhereIF(!string.IsNullOrWhiteSpace(input.Name), u => u.Name.Contains(input.Name.Trim()))
.Select((line, level) =>new TbLineInfoOutput
{
Id = line.Id,
Pid = (long)level.Pid,
LevelName = level.Level,
});
/// <summary>
/// XL等级
/// </summary>
[SugarTable("Tb_linelevel","XL等级")]
public class TbLineLevel : EntityBase
{
/// <summary>
/// 关联tb_bureau的id,
/// </summary>
[SugarColumn(ColumnDescription = "关联tb_bureau的id,")]
public long? Pid { get; set; }
/// <summary>
/// XL等级
/// </summary>
[SugarColumn(ColumnDescription = "XL等级")]
public string? Level { get; set; }
}
[SugarTable("tb_lineinfo")]
[Description("XL表,是GT表父类")]
public class TbLineInfo : EntityBase
{
/// <summary>
/// 父Id,默认是0
/// </summary>
public long Pid { get; set; }
/// <summary>
/// XL名称
/// </summary>
public string Name { get; set; }
}
生成的SQL语句是
SELECT * FROM (SELECT "LINE"."ID" AS "ID" , "LEVEL"."PID" AS "PID" , "LEVEL"."LEVEL" AS "LEVELNAME" ,ROW_NUMBER() OVER(ORDER BY Id Desc) AS RowIndex FROM "TB_LINEINFO" "LINE" Left JOIN "TB_LINELEVEL" "LEVEL" ON (( "LINE"."PID" = "LEVEL"."ID" ) AND ( "LEVEL"."ISDELETE" = 0 )) WHERE ( "LINE"."ISDELETE" = 0 )) T WHERE RowIndex BETWEEN 1 AND 20
但是在达梦里边执行还是提示歧义
0 回复 -
null VIP01个月前
@fate sta:版本已经是最新的了
0 回复 -
null VIP01个月前
已经解决
0 回复