Klaus: Problem bei MySQL-Abfrage

Beitrag lesen

Hallo,

ich habe 2 Tabellen, die 1. Tabelle enthält bspw. Name und Kontaktdaten von Personen, die 2. Tabelle alle Urlaubsziele, die eine Person bereits besucht hat.

Eine Abfrage, für alle Personen aus Hamburg und die bereits Paris besucht haben, funktioniert prächtig:

select p.*,z.* from personen as p left join ziele as z on p.idnr=z.pidnr where p.ort like '%Hamburg%' AND z.ziel like '%Paris%'

Aber wenn ich jetzt alle Personen aus Hamburg wissen möchte, die noch NICHT in Paris waren, funktioniert z.B. die Abfrage nicht korrekt:

select p.*,z.* from personen as p left join ziele as z on p.idnr=z.pidnr where p.ort like '%Hamburg%' AND z.ziel not like '%Paris%'

Das Problem für mich ist, dass die Abfrage dynamisch erstellt wird, d.h. der Anwender kann aussuchen, nach welchen Feldern er nach was suchen möchte und die Abfrage wird dann entsprechend zusammengebaut. D.h. die Abfrage müsste für "like" und "not like" sehr ähnlich aussehen.

Hat jemand eine Idee?

Klaus