Sto realizzando un semplice elenco di persone che non hanno consegnato il rapporto in un dato mese.
tabella Utenti [1 <-> N ] Rapporti
Dove Rapporti ha un campo mysql di tipo data che può soltanto essere il primo giorno dei vari mesi
Mettiamo che voglio l’elenco di chi non ha consegnato il rapporto di ottobre.
Scrivo questa query:
SELECT
CONCAT (U.nome, ' ', U.cognome) as nomeCompleto
FROM `tbl_utenti` as U
LEFT JOIN tbl_rapporti as R
ON r.dataRapporto = '2012-10-01' AND r.utenteId = P.id
WHERE r.id IS NULL
E tutto funziona in phpMyAdmin, ora sto creando un nuovo data provider per la nuova vista che sto facendo.
$criteria = new CDbCriteria();
$criteria->with = array ('rapporti');
.... etc ...
So come scrivere i criteria->select e i criteria->order, e che gli alias di tabella devono diventare variaibili pubbliche del model utenti.
Sono bloccato nel fatto che non so come specificare la condizione di join AGGIUNTIVA r.dataRapporto = ‘2012-10-01’
Tenete conto che non posso spostare la condizione sul WHERE perchè ovviamente non da gli stessi risultati, dato che cercherebbe contemporaneamente un rapporto per data e per id e quindi non troverebbe nulla
Come si specificano le condizioni di join ?
Devo forse aggiungere una nuova relation tra utenti e rapporti ? Ma come fare perchè accetti la data di rapporto come parametro?
EDIT: ho provato a specificare le condizioni di join nel with, ma …
... WHERE (rapporti.id IS NULL) AND (dataRapporto='2012-10-01')
che appunto dà zero record…