将 LEFT OUTER JOIN 查询转换为 Ecto

2024-01-06

我不知道如何将 SQL 语句转换为 Ecto。

凤凰城设置

mix phx.gen.html Location Country countries name
mix phx.gen.html Location FederalState federal_states name
mix phx.gen.html Calendar Day days date_value:date
mix phx.gen.html Calendar Period periods name 
                                         starts_on:date 
                                         ends_on:date
                                         country_id:references:countries
                                         federal_state_id:references:federal_states
mix pix.gen.html Calendar Slot slots day_id:references:days 
                                     period_id:references:periods

SQL语句

SELECT days.date_value, periods.name FROM days 
LEFT OUTER JOIN slots ON (days.id = slots.day_id) 
LEFT OUTER JOIN periods ON (slots.period_id = periods.id and 
(periods.country_id = 1 OR 
periods.federal_state_id = 5)) 
WHERE days.date_value >= '2017-01-01' AND 
days.date_value <='2017-12-31' 
ORDER BY days.date_value;

是否可以用 Ecto 函数替换此 SQL 语句?


A left_join does a LEFT OUTER JOIN默认情况下。如果您对表使用相同的别名,则查询的其余部分很容易翻译。如果你有一个starts_on and ends_on定义为Date具有适当值的结构,这应该有效:

query = from(
             days in Day,
             left_join: slots in MehrSchulferien.Calendar.Slot,
             on: days.id == slots.day_id,
             left_join: periods in MehrSchulferien.Calendar.Period,
             on: slots.period_id == periods.id and
                 (periods.country_id == ^federal_state.country_id or
                  periods.federal_state_id == ^federal_state.id),
             where: days.date_value >= ^starts_on and
                    days.date_value <= ^ends_on,
             order_by: days.date_value
            )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 LEFT OUTER JOIN 查询转换为 Ecto 的相关文章

  • 当作为函数参数传递时,elixir 是否会生成映射的副本?

    换句话说 我想知道在 Elixir 中 映射是通过值还是通过引用传递给函数 鉴于 Elixir 的无副作用原则 我怀疑这是有价值的 但是大地图不会造成巨大的重复效率低下吗 在此先感谢您的帮助 由于 Elixir 中的所有术语都是不可变的 因
  • “!”、“?”、“_”和“.”是什么意思? Elixir 中的语法

    我需要帮助理解 Elixir 中的以下语法 and 这些语法在 Elixir 的功能中起什么作用 例如Repo get 我不确定它们是否只是函数名称 或者有一个角色 虽然我知道 用于调用匿名函数 和 对于任何或可变的 失败时引发异常的函数约
  • 套接字无法连接到端点

    var socket new Socket localhost 4000 socket connect Returns WebSocket connection to ws localhost 4000 ws failed Error du
  • Phoenix:订购查询集

    我 一个菜鸟 为了好玩而玩弄 Phoenix 框架并构建一个小型 Twitter 克隆 我一切正常 但是 我想按updated at字段 升序 正如您从 tweet controller 中看到的 我尝试过使用 order by 子句 但这
  • 当您在地图上进行操作时,Elixir 中是否会保留键和值的顺序?

    假设我在 Elixir 中有一张地图 m a gt 1 b gt 2 c gt 3 如果我打电话Map values m 我能保证返回值永远是 1 2 3 按这个顺序而不是说 3 1 2 这是我从文档中不清楚的一件事 经过一些初步测试 我认
  • Elixir GenServer 并行handle_call

    Phoenix框架上有一个应用程序 需要 GenServer 它将检查一些值 这些值的验证从控制器开始 来自客户端的请求 GenServer 值检查 客户端接收响应 一旦handle call是同步的 那么当10个客户端同时调用10个han
  • Ecto - 验证关联模型的存在

    如何验证 Ecto 中是否存在关联模型 schema foo do has many bar Bar timestamps end required fields w bar invalid 有办法这样做吗 并验证这些字段的最小 最大数量
  • Elixir 中的递归和匿名函数

    我正在尝试定义一个匿名函数来执行点积 我可以将其编码为私有函数 没有任何问题 但我正在努力解决匿名函数语法 我知道我可以以不同的方式实现这一点 但我试图了解如何使用模式匹配和递归来定义匿名函数 这是我当前的实现 dot fn i input
  • 如何在 Elixir 或 Phoenix 框架中安排代码每隔几个小时运行一次?

    假设我想每 4 小时发送一堆电子邮件或重新创建站点地图或其他任何内容 我该如何在 Phoenix 或仅使用 Elixir 做到这一点 有一个简单的替代方案 不需要任何外部依赖项 defmodule MyApp Periodically do
  • 如何完全禁用 Elixir/Phoenix 生成器和模型中的上下文?

    凤凰城有一个发电机 mix phx gen html Accounts User users name string age integer 我不想为我的模型使用上下文 也不想提供它的名称 如何禁用它 您仍然可以使用 1 2 及更早版本中的
  • Ecto 中按日期时间查询

    这是我尝试过的 date Ecto DateTime from erl calendar universal time query gt where record record deadline gt date 我也尝试过 date Ect
  • 如何通过 SSL 从 Phoenix Web App 连接到 PostgreSQL?

    When trying to run Elixir Phoenix Web Application using PostgreSQL Database hosted 3rd party Database as a Service Azure
  • 使用 Ansible 将二进制文件添加到 PATH

    我正在尝试安装Kiex https github com taylor kiex版本管理器Elixir http elixir lang org install html使用 Ansible 的编程语言 这些是我为此使用的戏剧 name K
  • Elixir Jason 使用元组对结构进行编码

    我有一个已经有的结构 derive Jason Encoder但该结构中的某些字段是元组 因此无法对结构进行编码 我该如何解决这个问题 UPDATE 我使用了下面提到的方法来实现协议 关于这种方法需要注意的一件重要事情是 它将改变整个项目的
  • Phoenix 编程:未定义函数 page_path/2

    我的网络应用程序遇到问题 出现以下编译错误 Compilation error on file web controllers auth ex CompileError web controllers auth ex 49 undefine
  • Elixir 中的多行注释

    大多数语言都允许块注释和多行命令 例如 HTML 中的多行注释如下所示 在 Elixir 中 我发现的最接近的东西来自 EEx docs https hexdocs pm eex EEx html EEx智能引擎似乎从源中被丢弃 即使它们是
  • 使用 gitbash 和 elixir 在 vscode 中输出垃圾而不是颜色

    我开始学习elixir并成功让iex有ansi颜色 问题是在 vscode 的终端中 输出看起来像垃圾 iex Interactive Elixir 1 8 1 press Ctrl C to exit type h ENTER for h
  • Elixir - 尝试/捕获 vs 尝试/救援?

    背景 Both try rescue and try catch是 Elixir 中的错误处理技术 根据相应章节 http elixir lang org getting started try catch and rescue html在
  • Elixir 中的斜线符号是什么意思?

    在 Elixir 文档中 他们继续使用带有斜杠的奇怪符号 例如 is boolean 1 IO puts 1 String length 1 is function 2 2 我只是猜测 但我认为它指的是数量 但如果是这样的话 为什么文档中没
  • 如何在 Elixir 中展平嵌套列表?

    我有一个嵌套列表 1 2 3 4 5 6 我怎样才能把它压平 使它变成 1 2 3 4 5 6 无需重新发明轮子 只需使用List flatten 1 https hexdocs pm elixir List html flatten 1

随机推荐

  • AbstractNum 和 NumberingInstance 的用途

    1 我在想他的目的AbstractNum是重用编号格式并且NumberingInstance是创建新列表 从 1 重新启动 但我注意到 如果在 1 处重新启动列表的第二个实例 openxml 文档将具有该列表的精确副本AbstractNum
  • Resharper 总是建议我制作 const string 而不是 string

    哪一个好 string sQuery SELECT FROM table or const string sQuery SELECT FROM table 为什么 resharper 总是建议我这样做 后者更好 这意味着 这不是实例变量 因
  • AIX 上的 proftpd 静态编译

    我想在 AIX 上编译 proftpd 使其可以部署在其他服务器上 而不必在每台服务器上重新安装所有 gnu lib 库 我已经设法动态编译它 但我无法使用该选项来编译它 LDFLAG Wl static 就像 Proftpd 官方文档中的
  • 如何在 Debian Wheezy armel 上安装 g++ 4.9?

    我的 Debian 7 armel 嵌入式系统目前有 g 4 6 我想升级到 g 4 9 以使用新的 C 11 功能 我怎么做 我当前的sources list内容是 deb http security debian org wheezy
  • Spreadsheet_excel_reader 日期格式[重复]

    这个问题在这里已经有答案了 我正在使用电子表格 excel reader 读取 php 上的 xls 文件并将数据插入到 oracle 数据库中 我正在使用下面的代码 filename test xls reader new Spreads
  • EF 3.x 中最简单的分组依据失败,并显示“不支持客户端分组依据”

    目前正在使用 EF Core 版本 3 1 1 进行测试 当我搜索时 我找到了对此问题的引用 但我没有看到任何关于为什么会发生这种情况的明确答案 以及它是否是一个将被修复的错误或是否是预期的行为 这就像看起来一样简单 BatchReques
  • 通过 WordPress 管理员不断收到此控制台错误

    未捕获 承诺中 message 侦听器通过 r 指示异步响应 在收到响应之前关闭了通道 消息 侦听器通过返回 true 指示异步响应 但消息通道在响应之前关闭收到 原型 对象 Promise then 异步 匿名 geolocation s
  • 从代码隐藏访问 asp:content

    好吧 我是一名经验丰富的 Web 开发人员 但有时 ASP Net 会欺骗我 我在 asp net 中有一个母版页 然后我有一个基于该母版页 home aspx 的页面 现在在 home aspx cs 中 我想访问 asp content
  • 停止自动隐藏托盘通知图标

    每当我的 Windows 窗体应用程序第一次运行时 托盘图标保持可见状态大约不到一分钟 然后自动隐藏 我该怎么做才能让它粘住而不是自动隐藏 我尝试搜索 但找不到任何有用的信息 看来这是 Windows 7 及更高版本的默认行为 我想知道是否
  • 如何在 Amazon EC2 Ubuntu 服务器上设置 GUI

    我正在使用亚马逊 Ubuntu EC2 实例 它只有一个命令行界面 我想为该服务器设置 UI 以使用远程桌面工具进行访问 有没有办法将GUI应用到EC2实例 这是可以做到的 以下是设置 GUI 的步骤 创建新用户 使用密码登录 sudo u
  • 使用Java注解的ViewResolver

    是否有可能在Spring http en wikipedia org wiki Spring Framework3 1 1 使用Java注释配置视图解析器 我已经使用 Java 注释完成了所有配置 但我陷入困境视图解析器 Code pack
  • 如何使用 BigDecimal 显示始终保留 2 位小数的数字?

    我在用大十进制以获得一些价格值 需求是这样的 无论我们从数据库中获取什么值 显示的值都应该有2个小数点 Eg 获取的值为 1 应显示为 1 00获取的值为 1 7823 应显示为 1 78 我在用setScale 2 BigDecimal
  • 如何在javascript中匹配由已知前缀和后缀包围的子字符串

    给定一个字符串 例如 示例字符串与要匹配的预期嵌套字符串 如何隔离仅知道其前缀和后缀的子字符串 例如之间intended and to match 使用正则表达式非捕获括号 https developer mozilla org en US
  • 如何检测 UIImage 中的 alpha 像素

    如果用户触摸位于 alpha 像素 透明 上 我尝试将 hitTest 传递给我下面的元素 我不知道的是如何确定 CGPoint 20 20 上的像素是否是完整的 alpha iOS 4 谢谢 奥 可以获取像素RGBA 然后获取alpha
  • 将请求从servlet转发到jsp

    我有一个小型应用程序 HTML 表单 作为控制器的 servlet 和 jsp 文件 我尝试弄清楚为什么我无法将请求从 servlet 转发到 jsp 文件 问题是从 html 提交后 显示 HTTP Status 404 申请流程 从 h
  • redshift select unique 返回重复值

    我有一个数据库 其中每个对象属性都存储在单独的行中 附加的查询不会在 redshift 数据库中返回不同的值 但在任何 mysql 兼容数据库中测试时可以按预期工作 SELECT DISTINCT distinct value FROM S
  • 如何确定渲染 HTML 页面需要多长时间?

    我有一个大页面 其中有一个大 HTML 表格 在 Internet Explorer 中 渲染内容需要很长时间 可能需要 10 15 秒来渲染 有没有一种方法可以使用 JavaScript 或其他方法来确定页面何时开始渲染以及何时完全完成渲
  • 读取 .config 文件

    目前我有一个名为 router js 的文件 设置如下 var Server require mongodb Server var MongoDB require mongodb Db var dbPort 31979 var dbHost
  • “org.eclipse.jdt.launching.IVMInstall.getLibraryLocations()”的问题

    当我尝试在 Eclipse 中运行 Java 程序时 出现以下错误 在 启动 ConvertExcelToJSON 期间发生内部错误 无法调用 org eclipse jdt launching IVMInstall getLibraryL
  • 将 LEFT OUTER JOIN 查询转换为 Ecto

    我不知道如何将 SQL 语句转换为 Ecto 凤凰城设置 mix phx gen html Location Country countries name mix phx gen html Location FederalState fed