Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用EXTO的相关子查询_Sql_Elixir_Ecto_Correlated Subquery - Fatal编程技术网

Sql 使用EXTO的相关子查询

Sql 使用EXTO的相关子查询,sql,elixir,ecto,correlated-subquery,Sql,Elixir,Ecto,Correlated Subquery,如何在exto中编写相关子查询 例如,SQLSELECTquery的等价物是什么: --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 ); 在exto语法中?我不

如何在
exto
中编写相关子查询

例如,SQL
SELECT
query的等价物是什么:

--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
);

exto
语法中?我不知道如何引用外部查询的
组名称

如果不使用片段,在Ecto中不可能使用共同相关的子查询。所以它会是这样的:

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}
或:

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}