我正在尝试遵循sqlboiler (https://github.com/volatiletech/sqlboiler)中的示例。但是,我找不到在AndIn子句中添加另一个表的方法,因为任何Where都会返回两个值。
users, err := models.Users(
Select("id", "name"),
Where("age > ?", 30),
AndIn("c.kind in ?", "visa", "mastercard"),
).All(ctx, db)在这个例子中,如果我们可以让一个过滤器从另一个表中获取值,那么它就等同于SQL。
要做到这一点,一种方法是单独获取值,然后将其作为变量输入。
谢谢!
发布于 2019-06-12 07:15:42
您可以在Where中使用任意SQL。
users, err := models.Users(
Select("id", "name"),
Where("age > ?", 30),
Where("c.kind IN (select kind from your_other_table)"),
).All(ctx, db)AndIn和WhereIn只是方便的函数,可以自动生成数量可变的占位符列表。WhereIn("x in ?", "a", "b")与Where("x in (?, ?)", "a", "b")相同。如果你不需要它,只要使用常规的Where即可。
https://stackoverflow.com/questions/56518761
复制相似问题