我正在尝试遵循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。
完成此操作的一种方法是分别获取值,然后将其作为变量输入。
谢谢!
答案 0 :(得分:0)
您可以在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)
WhereIn
,AndIn
只是方便的函数,用于自动生成可变数量的占位符列表。 WhereIn("x in ?", "a", "b")
与Where("x in (?, ?)", "a", "b")
相同。如果不需要,只需使用常规的Where
。