0

我正在尝试遵循 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。

完成此操作的一种方法是分别获取值,然后将其作为变量输入。

谢谢!

4

1 回答 1

0

您可以在Where.

users, err := models.Users(
  Select("id", "name"),
  Where("age > ?", 30),
  Where("c.kind IN (select kind from your_other_table)"),
).All(ctx, db)

WhereInAndIn只是自动生成可变数量占位符列表的便捷函数。WhereIn("x in ?", "a", "b")是一样的Where("x in (?, ?)", "a", "b")。如果您不需要它,只需使用常规Where.

于 2019-06-11T23:15:42.330 回答