0

我有一个 partnerIds 列表和一个 partnerIds 到 customerIds 列表的映射。

我想查询合作伙伴与客户,只检索列表中的合作伙伴,以及地图中存在的相关客户。

partnerIds := []int{ 1, 2 }
partnerMap := make(map[int][]int)
partnerMap[1] = []int{ 100, 106 }
partnerMap[2] = []int{ 101, 206, 207 }

results := db.Partner.Query().
  Where(partner.IDIn(partnerIds...)).
  WithCustomers(func(q *ent.CustomerQuery) {
    q.Where(customer.IDIn(partnerMap[xxx]...)) // Something here instead of xxx
  }).
  AllX(context.Background())

目前我只是传入所有 customerIds 的列表,然后在事后重新过滤。但希望有更好的方法。

是否可以在客户子查询中以某种方式引用解压缩的 partnerIds 迭代器?或者只是我缺少的一种更好的方式。

4

0 回答 0