GORM Playground Link
https://github.com/go-gorm/playground/pull/563
Description
例如: 我链接里的例子
sql := DB.ToSQL(func(tx *gorm.DB) *gorm.DB {
return tx.Joins("Company").Take(&user) // 这里使用 Left Join
})
println(sql)
sql = DB.ToSQL(func(tx *gorm.DB) *gorm.DB {
return tx.Joins("Company", tx.Omit("Name")).Take(&user) // 但是这里却被改变,只是使用 Join
})
println(sql)
上面的代码分别输出:
SELECT `users`.`id`,`users`.`created_at`,`users`.`updated_at`,`users`.`deleted_at`,`users`.`name`,`users`.`age`,`users`.`birthday`,`users`.`company_id`,`users`.`manager_id`,`users`.`active`,`Company`.`id` AS `Company__id`,`Company`.`name` AS `Company__name` FROM `users` LEFT JOIN `companies` `Company` ON `users`.`company_id` = `Company`.`id` WHERE `users`.`deleted_at` IS NULL LIMIT 1
SELECT `users`.`id`,`users`.`created_at`,`users`.`updated_at`,`users`.`deleted_at`,`users`.`name`,`users`.`age`,`users`.`birthday`,`users`.`company_id`,`users`.`manager_id`,`users`.`active`,`Company`.`id` AS `Company__id` FROM `users` JOIN `companies` `Company` ON `users`.`company_id` = `Company`.`id` WHERE `users`.`deleted_at` IS NULL LIMIT 1