users: id, nick, blabla
messages: id, content, blabla
message_users: message_id, user_id
Czyli do jednej wiadomosci może byc przypisanych wielu odbiorców
Na każdą tabele mam rzecz jasna model.
class Message ....{ 'className' => 'MessageUser', 'foreignKey' => 'message_id', 'dependent' => true, 'child' => true, ), );
oraz
class MessageUser ... { 'className' => 'Message', 'foreignKey' => 'message_id', ), 'className' => 'User', 'foreignKey' => 'user_id', ) ); }
No i na modelu Message robie findAll. Niesety ta metoda robi mi dwa zapytania.
Jedno na SELECT z messages, a drugie ne SELECT z message_users i potem łączy wyniki.
Czy można tu jakoś wymusić, by ona zrobiła mi jedno zapytanie:
Select ... from message left join message_users .... ?
edit: na chwilę obecną rozwiązałem to przez recznie dodanie LEFT JOIN dla findAll