You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
package models
type Employee struct {
ID int64 `gorm:"primaryKey"`
Name string
CompanyCustomID int
Company Company `gorm:"foreignKey:CompanyCustomID"`
IDCard IDCard
}
type Company struct {
ID int64 `gorm:"primaryKey"`
Name string
}
type IDCard struct {
ID int64 `gorm:"primaryKey"`
Name string
EmployeeID int64
}
func main() {
var emp1 = models.Employee{ID: 2}
DB.Preload("Company").Preload("IDCard").First(&emp1)
fmt.Println(emp1)
}
Why does the sql log output order not is execute order,it is my go run output
2024-09-02 01:18:33.090601515 +0800 CST m=+0.004264097 181.079µs SELECT `companies`.`id`,`companies`.`name` FROM `companies` WHERE `companies`.`id` = 2
2024-09-02 01:18:33.090922619 +0800 CST m=+0.004585199 230.957µs SELECT `id_cards`.`id`,`id_cards`.`name`,`id_cards`.`employee_id` FROM `id_cards` WHERE `id_cards`.`employee_id` = 2
2024-09-02 01:18:33.090942845 +0800 CST m=+0.004605426 1.137411ms SELECT `employees`.`id`,`employees`.`name`,`employees`.`company_custom_id` FROM `employees` WHERE `employees`.`id` = 2 ORDER BY `employees`.`id` LIMIT 1
The document you expected this should be explained
when i use find method with preload and then it generated multiple sql log to the console,but the order of sql log output made me confusion, and i search from google and baidu, not body talk about the order of the sql log output. so it is default behavior?
Expected answer
i think it the console may be output the order of the sql log like below result
2024-09-02 01:18:33.33.090601515+0800 CST m=+0.004605426 1.137411ms SELECT `employees`.`id`,`employees`.`name`,`employees`.`company_custom_id` FROM `employees` WHERE `employees`.`id` = 2 ORDER BY `employees`.`id` LIMIT 1
2024-09-02 01:18:33.090922619 +0800 CST m=+0.004264097 181.079µs SELECT `companies`.`id`,`companies`.`name` FROM `companies` WHERE `companies`.`id` = 2
2024-09-02 01:18:33.090942845 +0800 CST m=+0.004585199 230.957µs SELECT `id_cards`.`id`,`id_cards`.`name`,`id_cards`.`employee_id` FROM `id_cards` WHERE `id_cards`.`employee_id` = 2
The text was updated successfully, but these errors were encountered:
Your Question
Why does the sql log output order not is execute order,it is my go run output
The document you expected this should be explained
when i use find method with preload and then it generated multiple sql log to the console,but the order of sql log output made me confusion, and i search from google and baidu, not body talk about the order of the sql log output. so it is default behavior?
Expected answer
i think it the console may be output the order of the sql log like below result
The text was updated successfully, but these errors were encountered: