第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Go GORM Preload & Select only items 匹配預(yù)加載表?xiàng)l件

Go GORM Preload & Select only items 匹配預(yù)加載表?xiàng)l件

Go
斯蒂芬大帝 2022-06-06 15:00:13
我試圖使用 GORM 從父表中僅選擇在相關(guān)表中具有匹配條件的項(xiàng)目。type Table1 struct {    gorm.Model    Name string    Email string    Items Table2}type Table2 struct {    gorm.Model    Product string    otherfield string}我想返回將 Table2 中的 Product 設(shè)置為特定值的所有 Table1 項(xiàng)目。到目前為止,我得到了 mssql:無(wú)法綁定多部分標(biāo)識(shí)符“visits.sign_out_time”。很多。我的命令是var items []Table2db.Debug().Preload("Table2").Where("table2.product = ?", "xxx").Find(&items).GetErrors()不完全確定我哪里出錯(cuò)了,但無(wú)論出于何種原因, .Where() 都無(wú)法訪問第二個(gè)預(yù)加載的表。我該如何使用 GORM 來(lái)實(shí)現(xiàn)我想要做的事情?
查看完整描述

2 回答

?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

Where("table2.product = ?", "xxx")無(wú)法訪問第二個(gè)(預(yù)加載)表,因?yàn)樗黀reload不是一個(gè)JOINS,它是一個(gè)單獨(dú)的SELECT查詢。您的代碼創(chuàng)建兩個(gè)單獨(dú)的查詢,如下所示:


// first query

SELECT * FROM table1 WHERE table2.product = 'xxx';

// second query

SELECT * FROM table2;

為了返回設(shè)置為特定值的所有記錄,您必須執(zhí)行以下操作Table1:ProductTable2


var t1 []Table1

err = db.

Where(`EXISTS(SELECT 1 FROM table2 t2 WHERE t2.product = ? AND table1.id = t2.table1_id)`, productValue).

Find(&t1).Error

請(qǐng)注意,這AND table1.id = t2.table1_id部分只是兩個(gè)表如何相關(guān)的示例,您可能有不同的關(guān)系,您需要相應(yīng)地修改查詢。


如果您希望 GORMt1.Items使用Table2數(shù)據(jù)填充 ,請(qǐng)Preload("Items")在上述查詢之前添加。


查看完整回答
1 反對(duì) 回復(fù) 2022-06-06
?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果只需要Items,可以直接查詢,Table2無(wú)需預(yù)加載Table1


var items []Table2

db.Where("product = ?", "xxx").Find(&items).GetErrors()

或者您需要Table1then Join 的所有數(shù)據(jù),table2然后使用 where 子句


db.Debug().Joins("JOIN table2 ON table1.id = table2.table1_id")

          .Where("table2.product = ?", "xxxx").Find(&table1data)

在這里我沒有看到任何外鍵Table2加入。你可以添加一個(gè)。


type Table2 struct {

    gorm.Model

    Product  string

    Table1ID uint

}


查看完整回答
反對(duì) 回復(fù) 2022-06-06
  • 2 回答
  • 0 關(guān)注
  • 610 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)