我试图在CakePHP 2.x中选择有或没有相关HABTM关系的所有记录
我可以运行此查询来选择源和相关记录,但是是否也可以获取在同一查询中没有关联记录的记录?我发现查询是单独执行此操作,但不是在单个查询中。
如果没有关联记录,我希望Servicetemplatedoc为null或为空,因为Servicetemplate模型是我想要所有记录的地方。
$query = [
'recursive' => -1,
'fields' => [
'Servicetemplate.*'
'Servicetemplatedoc.*',
],
'joins' => [
[
'table' => 'servicetemplatedocs_to_servicetemplates',
'alias' => 'ServicetemplatedocsToServicetempaltes',
'type' => 'LEFT',
'conditions' => [
'ServicetemplatedocsToServicetempaltes.servicetemplatedoc_id = Servicetemplatedoc.id',
],
],
[
'table' => 'servicetemplates',
'type' => 'INNER',
'alias' => 'Servicetemplate',
'conditions' => 'Servicetemplate.id = ServicetemplatedocsToServicetempaltes.servicetemplate_id'
],
]
];
$result = $this->find('all', $query);
非常感谢。
答案 0 :(得分:0)
$query = [
'recursive' => -1,
'fields' => [
'Servicetemplate.*'
'Servicetemplatedoc.*',
],
'joins' => [
[
'table' => 'servicetemplates',
'type' => 'INNER',
'alias' => 'Servicetemplate',
'conditions' => 'Servicetemplate.id = ServicetemplatedocsToServicetempaltes.servicetemplate_id'
],
[
'table' => 'servicetemplatedocs_to_servicetemplates',
'alias' => 'ServicetemplatedocsToServicetempaltes',
'type' => 'LEFT',
'conditions' => [
'ServicetemplatedocsToServicetempaltes.servicetemplatedoc_id = Servicetemplatedoc.id',
],
],
];
$result = $this->find('all', $query);
首先是Servicetemplates然后是Servicetemplatesdocs 扭转表格