Hallo,
ich habe 1 Tabelle Personen und eine Tabelle mit den Informationen in einer 1-zu-N-Beziehung, soll heissen, in der Tabelle können pro Person aus jeder Tabelle beliebig viele Einträge stehen.
Jetzt möchte ich natürlich eine Suche ermöglichen, in der nach Werten aus jeder der Personen-Tabelle und auch aus der Info-Tabelle gesucht wird, aber nicht für jeden gefundenen Wert aus der Info-Tabelle ein neuer Satz wird, sondern in der Ergebnistabelle pro Person nur eine Zeile gezeigt wird, alle Werte aus der Info-Tabelle in einem Feld in der Tabelle.
Die Abfrage sieht derzeit so aus:
select p.*,i.* from personen as p left join infos as i on p.idnr = i.typnr where concat_ws (' ',i.information,p.name,p.ort,p.kategorie) like '%$wert%'
Dabei wird aber noch für jeden Eintrag aus Infos auch ein Satz erzeugt.
Ich habe noch versucht, dies dann in der Schleife bei der Ausgabe zu berücksichtigen, aber es scheint mir sehr aufwändig, zu prüfen ob sich der Name geändert hat und wenn dann erst die Informationen des Eintrags davor auszugeben.
Eine zweite Idee ist, mit einer Single-Abfrage zu garantieren, dass nur 1 Satz pro Person gesammelt wird und in der Schleife dann mit einem neuen Select immer wieder neu die Daten aus der Tabelle Infos zu holen.
Habt ihr vielleicht bessere Ideen?
Klaus