我想结合表:sql是:
select name, extract(DAY from fechaNacimiento) from alumno
union
select name,extract(DAY from fechaNacimiento) from asesor
是否可以在dsql()或dq()语句中使用该查询?
答案 0 :(得分:0)
我是Agile Toolkit的作者,UnionModel实现现在作为Agile Data的单独模块提供。
http://www.agiletoolkit.org/data/extensions/report
使用扩展名,假设您有“Alumno”和“Asesor”的模型,其中定义了字段名称/日以生成上述查询,您可以基于域逻辑构建联合模型:
$union = new \atk4\report\UnionModel($db);
$union->addNestedModel(new Model_Alumno());
$union->addNestedModel(new Model_Asesor());
$union->addField('name');
$union->addField('day');
结果模型将是只读的,但可以在任何地方完全使用,支持分组,条件,限制,并且只查询必要的字段。
不使用“报表扩展”的解决方案将涉及手动对齐嵌套模型中的查询并将它们放在Expression中:
$expr = new \atk4\dsql\Expression(
"select ... from ([] union [])",
[
$m1->action('select', [$fields]),
$m2->action('select', [$fields]),
]
);
现在认为支持4.4之前的版本已经过时了。