Mailinglisten-Archive |
Hallo Stephan, Ich weiß nicht, ob Deine Anfrage noch aktuell ist, deswegen sende ich Dir meine Antwort per PM und nicht in die Liste zurück. > > LG, > > Stephan > > SELECT a. * > >FROM table_A AS a, table_AxB AS x, table_B AS b > WHERE a.id = x.a_id > AND x.b_id = b.id -- Trenne die Abfrage hier auf und gib testweise die entsprechende Datensatz-ID von Tabelle A ein, bei dem Du genau weißt, dass diese in B enthalten sein müßten. Also: AND b.id = 12345 Du müßtest dann zwei Datensätze erhalten. Wenn nicht, kann es sein, dass die Datensätze in der Tabelle B noch gar nicht existieren oder in Tabelle X falsche Zuweisungen vorliegen. Dies müßtest Du dann einzeln testen. Und zum folgenden Konstrukt: > AND ( > ( > a.name LIKE '%term1%' > OR a.name2 LIKE '%term1%' > OR b.name LIKE '%term1%' > ) > AND ( > a.name LIKE '%term2%' > OR a.name2 LIKE '%term2%' > OR b.name LIKE '%term2%' > ) > ) Das zweite AND ist meines Erachtens falsch. Du suchst z.B. nach a.name LIKE '%term1%' AND a.name LIKE '%term2%' -> Weil nichts anderes beduetet dies, auch wenn die Klammern vorhanden sind und innerhalb der Klammern OR-Ausdrücke stehen. Es kann aber nicht sein, dass a.name sowohl term1 UND term2 beinhaltet. Das wäre ja fast so, als ob man eine Postleitzahl sucht, die gleichzeitig 45123 UND 89234 ist. Das geht nicht. Grüße Tim
php::bar PHP Wiki - Listenarchive