[Frage] SQL-Query - Wie Suche in einer 1:n Beziehung machen?

  • marion-j marion-j
    R2-D2
    0 x
    106 Beiträge
    1 Hilfreiche Beiträge
    08. 12. 2016, 10:58

    Hallo,

    ich habe eine Personenliste. Jede Person kann mehrere Tätigkeiten (1:n Beziehung) haben.
    Ich habe eine Suchformular erstellt in dem ich nach Name o. Vorname suchen kann. Das funktioniert.
    Jetzt möchte ich die Suche aber ausweiten, so dass auch noch nach z.B. Standort gesucht werden kann.
    Hat jemand eine Idee, wie das gemacht werden kann?

    So in etwas sieht der Dump aus:

    1. Person
    2. 0
    3. -> name
    4. -> vorname
    5. -> taetigkeit
    6. 0
    7. -> position
    8. -> standort
    9. 1
    10. -> position
    11. -> standort
    12.  
    13. ... usw...

    Und hier mein SQL-Query:

    1. public function findPerson($search) {
    2. $query = $this->createQuery();
    3. $query->matching(
    4. $query->logicalOr(
    5. $query->like('name', '%' . $search . '%'),
    6. $query->like('vorname', '%' . $search . '%')
    7. )
    8. );
    9. return $query->execute();
    10. }

    ?
    $query->like('[b]taetigkeit.X.standort[/b]', '%' . $search . '%')
    ?
    Gibts es eine einfache Lösung um, nach dem in diesem Beispiel, Standort zu suchen? Wenn das X (1:n) nicht wäre, wärs ja einfach... aber so, ich habe keine Idee. Kann jemand helfen?


  • 1
  • 1