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

I am trying to follow the examples in sqlboiler (https://github.com/volatiletech/sqlboiler). But, I can't find a way to add another table in AndIn clause, since any Where leads to return two values.

users, err := models.Users(
  Select("id", "name"),
  Where("age > ?", 30),
  AndIn("c.kind in ?", "visa", "mastercard"),
).All(ctx, db)

In this example, if, we could get a filter a way to fetch values from another table, it'd be equivalent to SQL.

One way to get this done is to obtain the values separately and then feed it in as a variable.

Thanks!

orm
dsymx68408
dsymx68408 如果那是您的观点,请使用ORM。在我看来,ORM从来都不是convieneint。
一年多之前 回复
duanqin2026
duanqin2026 让我们继续聊天中的讨论。
一年多之前 回复
dpge74512
dpge74512 是的,但是如果代码更改需要数据库迁移,那么使用ORM会很方便。标准SQL在生产代码中破坏了很多东西。此外,确实没有不使用ORM的选项。
一年多之前 回复
dongwei9771
dongwei9771 标准SQL。正常方式。
一年多之前 回复
dongwen4630
dongwen4630 如果不是ORM,那?
一年多之前 回复
dre75230
dre75230 我个人的建议是不要使用ORM。
一年多之前 回复
douzhi2017
douzhi2017 -有什么建议可以解决吗?
一年多之前 回复
douhao1956
douhao1956 这些问题是不使用ORM的主要原因之一。表面上,ORM旨在使生活更轻松。当您因为很难使ORM做正确的事情而开始撞墙时,显然再也没有使生活变得更轻松了。
一年多之前 回复

1个回答

You can use arbitrary SQL in Where.

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 are just handy functions to autogenerate a list of a variable amount of placeholders. WhereIn("x in ?", "a", "b") is the same as Where("x in (?, ?)", "a", "b"). If you don't need that, just use regular Where.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐