В Elixir, с Ecto, возможно объединение двух разных таблиц (в одном хосте), принадлежащих двум различным базам данных.Присоединение к двум таблицам относится к двум базам данных в Elixir Ecto
Есть две базы данных, называемые cloud
и cloud_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
. И наоборот
Ссылка:
MySQL -- join between tables in 2 different databases?
Пожалуйста, укажите конкретную ошибку, которую вы получаете. –
В отличие от сайтов на форуме, мы не используем «Спасибо», или «Любая помощь оценена», или подписи на [so]. См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -отправлено-от-сообщений). BTW, это «Спасибо заранее», а не «Спасибо в продвинутом». –
Пожалуйста, укажите ошибку, которую вы получаете, и версию Ecto. Также обратите внимание, что у вас есть опечатка в вашем запросе. be ', on: cucu', а не', on cucu'. –