Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Join两个相同的表时生成的sql错误 #1861

Open
zhaoyuehui123 opened this issue Jul 24, 2024 · 4 comments
Open

Join两个相同的表时生成的sql错误 #1861

zhaoyuehui123 opened this issue Jul 24, 2024 · 4 comments

Comments

@zhaoyuehui123
Copy link

Feature 特性

针对Join两个相同的表时生成的sql错误的问题,建议不要限制abc别名。

var sql = Db.Select<TableUser, TableOrgan, TableOrgan>()
    .InnerJoin((x, y, z) => x.Organ1Id == y.Id)
    .InnerJoin((x, y, z) => x.Organ2Id == z.Id)
    .ToSql((x, y, z) => new { x, y, z });
生成后的sqlSELECT a.`Id` as1, a.`UserName` as2, a.`Organ1Id` as3, a.`Organ2Id` as4, b.`Id` as5, b.`OrganName` as6, b.`Id` as7, b.`OrganName` as8
FROM `TableUser` a
INNER JOIN `TableOrgan` b ON a.`Organ1Id` = b.`Id`
INNER JOIN `TableOrgan` c ON a.`Organ2Id` = c.`Id`

简要描述原因

针对上述Join并且有两个相同表的时候,如果lambda中不使用abc变量时生成的语句会有问题。每个人的书写习惯不大一样,有人习惯使用xyz,有人习惯使用ijk等等,所以写代码时就特别特别容易出问题,而且生成的SQL还不一定报错(上边生成的语句就不会报错),写代码的时候也不太可能每写一条语句就生成sql去看一下对不对(这个心智负担太重了),所以建议在整个框架层面(不光join)转换为sql的时候,不要依赖和限制用户所使用的参数名称。

@zhaoyuehui123
Copy link
Author

非常感谢,期待新版本!

@zhaoyuehui123
Copy link
Author

老大,啥时候针对我这个BUG发一个正式版呀,可以给我发个小版本的正式版吗

1 similar comment
@zhaoyuehui123
Copy link
Author

老大,啥时候针对我这个BUG发一个正式版呀,可以给我发个小版本的正式版吗

@2881099
Copy link
Collaborator

2881099 commented Oct 28, 2024

版本在等一个功能,preview 发布过了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants