gpt4 book ai didi

elixir - 在 Elixir Ecto 中加入属于两个数据库的两个表

转载 作者:行者123 更新时间:2023-12-04 18:05:11 33 4
gpt4 key购买 nike

在 Elixir 中,使用 Ecto,是否可以连接属于不同两个数据库的两个不同表(在同一主机中)。

有两个数据库叫cloudcloud_usage在这个查询中

当我执行查询时,我应该使用哪个 Repo?
Billing.CloudUsage.Repo.all(query)
或者
Billing.Cloud.Repo.all(query)

    query = from cucu in "cloud_usage.cloud_usage",
inner_join: cv in "cloud.volumes", on: cucu.usage_id == cv.id,
where: cucu.account_id == ^account_id,
where: cucu.usage_id == 6,
where: like(cucu.description, ^vol_description),
where: cucu.start_date >= ^start_datetime,
where: cucu.start_date <= ^end_datetime,
group_by: cucu.usage_id,
group_by: cucu.zone_id,
select: {cucu.usage_id, cucu.zone_id, cucu.size, sum(cucu.raw_usage)}
   result = Billing.CloudUsage.Repo.all(query)

当我调用该函数时出现错误
** (Mariaex.Error) (1146): Table 'cloud_usage.cloud_usage.cloud_usage' doesn't exist

我知道为什么会这样。但如果我使用 Billing.Cloud.Repo.all(query) ,我想我很难检索到 cloud_usage.cloud_usage中的数据 table 。反之亦然

引用:

MySQL -- join between tables in 2 different databases?

最佳答案

你的代码是完美的。这是 Ecto 中的一个错误。如果您想尝试一下,我已经在 master 中修复了它。 :)

关于elixir - 在 Elixir Ecto 中加入属于两个数据库的两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30472081/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com