Estou querendo saber qual seria a melhor forma de resolver meu problema, estou conseguindo montar um $criteria, mas estava precisando de algo a mais e não sei como fazer.
Tenho uma tabela de Física(‘individual’) e essas físicas podem ter vínculo com uma Jurídica(‘corporation’). Estou fazendo a Seguinte criteria:
$now = date('Y-m-d H:i:s');
$criteria->together = true;
$criteria->select = 'person_full_name';
$criteria->with = array(
'individual'=> array(
'select' => 'individual_registry',
'joinType' => 'INNER JOIN',
'with' => array(
'linkCorporationIndividuals' => array(
'select' => '',
'on' => "start_date_link <= '$now' AND end_date_link >= '$now'",
'joinType' => 'LEFT JOIN',
'with' => array(
'idCorporation' => array(
'select' => '',
'joinType' => 'LEFT JOIN',
'with' => array(
'idPerson' => array(
'select' => 'person_full_name',
'on' => "idPerson.status = 'A'",
'joinType' => 'LEFT JOIN',
),
),
),
),
),
),
),
);
Esse criteria está trazendo o resultado esperado(trazendo todas as minha pessoas Físicas e duplicando o registro caso elas tenham vínculo com mais de uma empresa e vindo em branco caso não tenham)
O meu problema é que eu quero que além de aparecer o registro com o vínculo, gostaria que aparecesse o registro sem ele também. Ex.:
Física Jurídica
Victor ------------
Victor Teste
Victor Teste2
Alfredo ------------
Nesse caso mesmo se Victor tiver um vínculo, ainda vai mostrar uma linha vazia o que eu acho que dá para ser feito com o UNION, no qual eu uniria o criteria mencionado (alterando os LEFT para INNER JOIN) e uniria o resultado de uma pesquisa simples na tabela de Física, que me traria os registros que eu estou precisando.
Ai que vem o problema, não sei como realizar o UNION. Usei uma função chamada mergeWith() do criteria, mas não apareceu UNION nenhum.
Alguém aí tem alguma idéia?