gpt4 book ai didi

mysql - gocraft/dbr : How to JOIN with multiple conditions?

转载 作者:数据小太阳 更新时间:2023-10-29 03:16:01 29 4
gpt4 key购买 nike

我使用 golang 开发网络应用程序。我使用图书馆 gocraft/dbr作为 O/R 映射器。

我有两个表:image 和 entry。我加入了他们的 table ,我想获得 image_url。

type Image struct {
ImageUrl dbr.NullString `db:"image_url"`
}

type Entry struct {
CompanyImageID dbr.NullInt64 `db:"company_image_id"`
CompanyImage Image
EyecatchIamgeID dbr.NullInt64 `db:"eyecatch_image_id"`
EyecatchImage Image
}

然后我在下面尝试:

var entry Entry
sess.Select("*").From("entry").
LeftJoin(dbr.I("image").As("eyecatch_image"), "entry.eyecatch_image_id = eyecatch_image.id").
LeftJoin(dbr.I("image").As("company_image"), "entry.company_image_id = company_image.id").
Load(&entry)
log.Println("company:", entry.CompanyImage)
log.Println("eyecatch:", entry.EyecatchImage)

结果:

company: {{{https://company_image_url.png true}}}
eyecatch: {{{ false}}}

下面是我的预期,但是没有变成预期的样子。

company: {{{https://company_image_url.png true}}}
eyecatch: {{{{http://eyecatch_image_url.png true}}}

当我尝试像下面这样更改连接条件时:

sess.Select("*").From("entry").
LeftJoin(dbr.I("image").As("eyecatch_image"), "entry.eyecatch_image_id = eyecatch_image.id")
Load(&entry)

结果:

company: {{{http://eyecatch_image_url.png true}}}
eyecatch: {{{ false}} {{ false}}}}

我不知道如何使用多个条件连接。

谢谢。

最佳答案

文档真的很差——他们似乎放弃了发布库的想法。有一个 open pull request that provides a little better documentation. .作者在这里描述了您可以像这样创建多个条件:

cond:= dbr.And(
dbr.Or(
dbr.Gt("created_at", "2015-09-10"),
dbr.Lte("created_at", "2015-09-11"),
),
dbr.Eq("title", "hello world"),
)

然后在任何语句中使用条件:

sess.Select("*").From("entry").
LeftJoin(dbr.I("image").As("eyecatch_image"), cond)
Load(&entry)

关于mysql - gocraft/dbr : How to JOIN with multiple conditions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35496485/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com