cat*_*ory 3 sql elixir correlated-subquery ecto
您将如何编写相关子查询Ecto?
例如,什么是SQL SELECT查询的等价物:
--Heaviest Lemmings per Group
SELECT ld.group_name, ld.id, ld.name, ld.weight
FROM lemming_data ld
WHERE weight = (
SELECT max(weight)
FROM lemming_data
WHERE group = ld.group_name
);
Run Code Online (Sandbox Code Playgroud)
在Ecto语法中?我不确定如何引用外部查询group_name.
在不使用片段的情况下,Ecto中无法进行与Co相关的子查询.所以它会是这样的:
from ld in "lemming_data",
where: ld.weight in fragment("(SELECT max(weight) FROM lemming_data WHERE group = ?)", ld.group_name),
select: ld # or {ld.group_name, ld.id, ld.name, ld.weight}
Run Code Online (Sandbox Code Playgroud)
要么:
from ld in "lemming_data",
where: fragment("? = (SELECT max(weight) FROM lemming_data WHERE group = ?)", ld.weight, ld.group_name),
select: ld # or {ld.group_name, ld.id, ld.name, ld.weight}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |