本质上,我需要在一个查询中恢复3个查询的结果(对于服务器端的分页排序)。这有点复杂。
这是包含必填字段的图表。
我需要的两列结果被认为是与函数相关的任务(计数)。
第一个查询成功地恢复了我需要的所有行,除了两行。
SELECT DISTINCT vue_cdc_for_opera.libelle as CDC,
vue_cdc_for_opera.id_cdc as \"id\",
COALESCE(vue_cdc_for_opera.signe_ue, vue_cdc_for_opera.signe_fr) as Signe,
vue_cdc_for_opera.classe_ue as \"Classe produit\",
vue_cdc_for_opera.code_cdc as \"Code CDC\",
dt_bdd_produit.libelle_dt as DT,
0 as \"Nombre OCO\",
0 as \"Nombre Operateur\"
FROM vue_cdc_for_opera
INNER JOIN cdc_postgresql ON vue_cdc_for_opera.code_cdc = cdc_postgresql.code_cdc
INNER JOIN dt_bdd_produit ON vue_cdc_for_opera.id_dt = dt_bdd_produit.id_dt
ORDER BY " . $order . " " . $sortOrder . "
OFFSET :offset
LIMIT :limit
为了获得"Nombre“,我运行以下查询:
SELECT
COUNT(o.id) as \"Nombre Opérateurs\"
FROM habilitation
INNER JOIN operateur o ON habilitation.id_operateur = o.id and o.actif = true
WHERE habilitation.id_cdc_postgresql = :idCdc
AND habilitation.actif = true
为了获得"Nombre“,我运行以下查询:
SELECT id_oc, oc FROM vue_for_lien_oco_cdc WHERE oc != '' AND code_cdc = :codeCdc;
基本上,我需要在单个查询中恢复所有内容,以便能够在服务器端分页中对"Nombre“和"Nombre”进行排序,这超出了我目前的SQL技能。:params
在后面的代码中引用绑定的参数。
有人告诉我可以在查询中使用内置的SQL函数,但我不确定从哪里开始。这是可行的吗,你会有任何线索或帮助吗?
发布于 2020-02-19 18:53:04
我不知道如何使用DQL在第一个和第二个查询中进行合并,但对于最新的查询,我们可以有:
$qb->createQueryBuilder('o')
->from(<insert your entity class here>)
->where('o.oc <> ""')
->andWhere('o.code_cdc = :codeCdc')->setParameter('codeCdc',$<insert variable for code_cdc>)
->getQuery()
->getResult();
https://stackoverflow.com/questions/60298476
复制相似问题