#4754·gf

关于left join 查询软删除数据表,删除条件应当在on中而不是全局

Author: darkicerainCreated Apr 11, 2026Updated Jul 29, 2026
Labelsbug

Go version

go1.25.3

GoFrame version

v2.10.0

Can this bug be reproduced with the latest release?

Option Yes

What did you do?

我的go 代码 `model := dao.CmsContent.Ctx(ctx).As("t") model = model.LeftJoin("xy_cms_content_type content_type", "content_type.id = t.content_type_id") model = model.LeftJoin("xy_cms_page_template page_template", "page_template.id = t.template_id") model = model.LeftJoin("xy_member member", "member.id = t.author_id") model = model.LeftJoin("xy_member created_member", "created_member.id = t.created_by ") model = model.LeftJoin("xy_member updated_member", "updated_member.id = t.updated_by ") model = model.Fields("t.*") model = model.Fields("content_type.name as contentType_name") model = model.Fields("page_template.name as template_name") model = model.Fields("member.nickname as author_nickname") model = model.Fields("created_member.nickname as createdBy_nickname") model = model.Fields("updated_member.nickname as updatedBy_nickname")

var item adminin.CmsContentViewModel
err := model.Where("t.id", id).Scan(&item)`

What did you see happen?

SELECT t.*, content_type.name as contentType_name, page_template.name as template_name, member.nickname as author_nickname, created_member.nickname as createdBy_nickname, updated_member.nickname as updatedBy_nickname FROM "xy_cms_content" AS t LEFT JOIN "xy_cms_content_type" content_type ON (content_type.id = t.content_type_id) LEFT JOIN "xy_cms_page_template" page_template ON (page_template.id = t.template_id) LEFT JOIN "xy_member" member ON (member.id = t.author_id) LEFT JOIN "xy_member" created_member ON (created_member.id = t.created_by) LEFT JOIN "xy_member" updated_member ON (updated_member.id = t.updated_by) WHERE ("t"."id" = 463) AND "t"."deleted_at" = 0 AND "member"."deleted_at" = 0 AND "created_member"."deleted_at" = 0 AND "updated_member"."deleted_at" = 0 LIMIT 1

What did you expect to see?

SELECT t.*, content_type.name as contentType_name, page_template.name as template_name, member.nickname as author_nickname, created_member.nickname as createdBy_nickname, updated_member.nickname as updatedBy_nickname FROM "xy_cms_content" AS t LEFT JOIN "xy_cms_content_type" content_type ON (content_type.id = t.content_type_id) LEFT JOIN "xy_cms_page_template" page_template ON (page_template.id = t.template_id) LEFT JOIN "xy_member" member ON (member.id = t.author_id) LEFT JOIN "xy_member" created_member ON (created_member.id = t.created_by AND "created_member"."deleted_at" = 0) LEFT JOIN "xy_member" updated_member ON (updated_member.id = t.updated_by AND "updated_member"."deleted_at" = 0) WHERE ("t"."id" = 463) AND "t"."deleted_at" = 0 AND "member"."deleted_at" = 0 LIMIT 1