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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Not() 屬于錯誤的表

Not() 屬于錯誤的表

Go
森欄 2023-04-04 17:05:28
我正在使用 go 版本 go1.10.3 linux/amd64 和 mysql 5.7。需要使用 GORM 的 docker compose config 運(yùn)行,或者請?zhí)峁┠呐渲谩ackage mainimport (    "github.com/jinzhu/gorm"    _ "github.com/jinzhu/gorm/dialects/mssql"    _ "github.com/jinzhu/gorm/dialects/mysql"    _ "github.com/jinzhu/gorm/dialects/postgres"    _ "github.com/jinzhu/gorm/dialects/sqlite")var db *gorm.DBfunc init() {    var err error     db, err = gorm.Open("mysql", "gorm:gorm@tcp(localhost:9910)/gorm?charset=utf8&parseTime=True")    if err != nil {        panic(err)    }    db.LogMode(true)}type Res {    Id int  `gorm:"column:id"`    age int  `gorm:"column:age"`}func main() {        var result []Res    db.Table("A").Select("A.id,A.age").Joins("left join B on A.id=B.id").        Where("A.age=28").       Not("B.id", []{2,3,4,5}).       Scan(&result)       fmt.Printf("%v", result)}sql日志是:select A.id,A.age from A left join B on A.id=B.id where a.age=28 and ABid not in(2,3,4,5)可以看出,對表A( A.B.id not in ...)追加了not操作。如何將其附加到表 B ( B.id not in ...)?
查看完整描述

2 回答

?
喵喔喔

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

首先,根據(jù)我的評論:您僅用作mysql數(shù)據(jù)庫,但您正在導(dǎo)入所有方言包(它們確實(shí)調(diào)用了它們各自的 init 函數(shù)。這些函數(shù)注冊了特定于方言的回調(diào)(例如 init func在MsSQL 包中)。從導(dǎo)入中刪除所有不使用的方言:


// remove lines that I've commented out here...

import (

    "github.com/jinzhu/gorm"

    // _ "github.com/jinzhu/gorm/dialects/mssql"

     _ "github.com/jinzhu/gorm/dialects/mysql"

    // _ "github.com/jinzhu/gorm/dialects/postgres"

    // _ "github.com/jinzhu/gorm/dialects/sqlite"

)

您可以將條款NOT IN的一部分移至基于文檔的條件。WHEREJOIN


我還會檢查您可能遇到的任何錯誤,它們可能會在日志頂部為您提供更多調(diào)試信息:


err := db.Table("A").Select("A.id,A.age").

    Joins("LEFT JOIN B on A.id =  B.id AND B.id NOT IN (?)", []int{2, 3, 4, 5}).

    Where("age = ?", 28).

    Scan(&result).Error

if err != nil {

    fmt.Fatalf("Failed to execute query: %+v", err)

}

fmt.Prinln(result)


查看完整回答
反對 回復(fù) 2023-04-04
?
三國紛爭

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個贊

解決

使用

Where("B.id not in(?)", [] {2,3,4,5}) instead of Not()

有人有更好的主意嗎?



查看完整回答
反對 回復(fù) 2023-04-04
  • 2 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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