Gorm 預載給了不明確的列錯誤
php小編子墨為您介紹Gorm預先載入中的不明確列錯誤。 Gorm是一個在Go語言中常用的ORM函式庫,用來實作資料庫操作。在使用Gorm進行預先載入時,有時會遇到列不明確的錯誤。這個錯誤的原因可能是資料庫表結構與Gorm模型定義不一致,或是預先載入的關聯表列名不正確。解決這個問題的方法是檢查資料庫表結構和Gorm模型定義,確保它們一致,並仔細檢查預先載入的關聯表列名是否正確。透過解決這個錯誤,您可以順利使用Gorm進行預先載入操作,提高資料庫操作效率。
問題內容
我有以下結構
type employee struct { employeeid int64 `gorm:"primary_key;column:employee_id"` employeecode string `gorm:"column:employee_code"` firstname string `gorm:"column:first_name"` lastname string `gorm:"column:last_name"` designationid int64 `gorm:"column:designation_id;"` designation *designation `gorm:"foreignkey:designationid"` } type designation struct { designationid int64 `gorm:"primary_key;column:designation_id"` designationname string `gorm:"column:designation_name"` } func getemployee(id int64) (*employee, error) { db := connection.getconn() //get connection defer db.close() employee := &employee{} err := db.model(employees).preload("designation", func(db *gorm.db) *gorm.db { return db.join("inner join employees on employees.designation_id = designations.id").order("employees.first_name desc") }).find(employee).error return employee, err }
產生的查詢是
SELECT * FROM employees; SELECT * FROM designations INNER JOIN employees ON employees.designation_id = designations.id WHERE id IN (1,2) order by employees.first_name DESC;
我有一個類似於我在上面函數中編寫的連接。在這裡,我無法正確連接,但在實際情況下,我知道需要連接,並且預先載入表和連接表中都有 id
欄位。
由於兩個表具有相同的列名,即 id
在這種情況下 mysql 會拋出錯誤
錯誤1052:where子句中的欄位「id」不明確
#我在 gorm v1.9.16 中遇到這個問題
我沒有找到任何提到類似問題的資源。 我們如何解決這個問題?
解決方法
您可以嘗試使用最新版本(> v1.20.x)嗎?
該問題已關閉https://github.com/go-gorm/ gorm/問題/2653
#這個問題似乎在新版本中得到了解決https://github.com /go-gorm/gorm/commit/2ae0653af2bc19cd31f687e797b189c85f0ac3f6
以上是Gorm 預載給了不明確的列錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Go語言中使用RedisStream實現消息隊列時類型轉換問題在使用Go語言與Redis...

GoLand中自定義結構體標籤不顯示怎麼辦?在使用GoLand進行Go語言開發時,很多開發者會遇到自定義結構體標籤在�...

Go爬蟲Colly中的Queue線程問題探討在使用Go語言的Colly爬蟲庫時,開發者常常會遇到關於線程和請求隊列的問題。 �...

Go語言中用於浮點數運算的庫介紹在Go語言(也稱為Golang)中,進行浮點數的加減乘除運算時,如何確保精度是�...

Go語言中字符串打印的區別:使用Println與string()函數的效果差異在Go...

Go語言中結構體定義的兩種方式:var與type關鍵字的差異Go語言在定義結構體時,經常會看到兩種不同的寫法:一�...

Go語言中哪些庫是大公司開發或知名開源項目?在使用Go語言進行編程時,開發者常常會遇到一些常見的需求,�...
