Guten Tag zusammen,
folgende Anforderung: es gebe ein "Projekt", zu dem es mehrere unterschiedliche Items (bspw. E-Mails) gleichen Typs zu speichern gibt: Diese n:m-Beziehung realisiert man in DBIC mit einer many_to_many-Beziehung - also bspw.:
package L::S::R::Projekt;
...
__PACKAGE__->has_many('mail_mapping', 'L::S::R::Mapping', 'project_id');
__PACKAGE__->many_to_many('mails', 'mail_mapping', 'mail');
1;
package L::S::R::Mapping;
...
__PACKAGE__->has_many('mail', 'L::S::R::Mails', 'mail_id');
package L::S::R::Mails;
...
Soweit so gut - und "einfach". Nun gibt es aber in der Mapping-Tabelle ein Flag, welches den Typen einer Mail bestimmt (bspw. 'automatisch', 'manuell' o.ä.).
Wie ermittle ich nun nur die Mails mit "Flag" 'automatisch' (welches ja ein Flag der Mapping-Tabelle ist!)?? Kann man gar direkt bei der Definition der Beziehungen verschiedene Filter fest legen??
In der Doku etc. habe ich dazu leider nichts finden können - es sollte aber doch eine Möglichkeit geben, oder??
Vielen Dank für Eure Anregungen,
Peter
ps: Gesucht wäre also etwas, dass ungefähr folgendes (My)Sql-Statement resultieren würde:
select mail.* from projekt join mapping using (project_id) left join mails using (mail_id) where mapping.type='auto'
Last edited: 2013-11-19 14:37:11 +0100 (CET)