gpt4 book ai didi

go - 在 gorm 中使用 'FROM' 中的子查询

转载 作者:IT王子 更新时间:2023-10-29 01:27:04 25 4
gpt4 key购买 nike

我想知道如何使用 gorm 在 FROM 子句中使用子查询。它看起来像下面这样:

SELECT * FROM 
(
SELECT foo.*
FROM foo
WHERE bar = "baz"
) AS t1
WHERE t1.id = 1;

我已经使用 golang 构建了子查询:

db.Model(Foo{}).Where("bar = ?", "baz")

但是我如何将其用作 FROM 中的子查询?

如果有一种方法可以将 gorm 查询转换为 SQL 字符串,那么我只需将该字符串插入原始 SQL。但是好像没有这样的方法。有什么建议吗?

最佳答案

你也可以在子查询上加入

subQuery := db.
Select("foo.*").
Table("foo").
Where("bar = ?", "baz").
SubQuery()

db.
Select("t1.*").
Join("INNER JOIN ? AS t1 ON t1.id = foo.id", subQuery).
Where("t1.id = ?", 1)

关于go - 在 gorm 中使用 'FROM' 中的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46807891/

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