SQLBoiler从`AndIn`中的另一个表中选择

时间:2019-06-09 22:13:08

标签: go orm

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

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

谢谢!

1 个答案:

答案 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)

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