Mam problem z prawidłowym (od strony funkcjonalnej) sformułowaniem pytania.
W tabeli BL_USR mam m.in. kolumny ID_USR i NICK_USR i gdy chcę odfiltrować tylko osoby z nickiem zawierającym fragment tekstu, używam (to są fragmenty wysyłane z Delphi poprzez ZEOSLib):
SELECT * FROM bl_usr WHERE nick_usr REGEXP "'+edFiltruj.Text+'"'
i działa to bardzo ładnie.
W drugiej tabeli są dwie kolumny ID_ATAK i ID_OBRONY. Gdy wysyłam zapytanie, które ma na celu wyświetlenie tych rekordów, gdzie w nicku atakującego lub broniącego znajduje się żądany tekst:
SELECT * FROM bl_usr, deklaracje WHERE bl_usr.nick_usr REGEXP "'+edFiltruj.Text+'" AND (bl_usr.id_usr=deklaracje.id_atak OR bl_usr.id_usr=deklaracje.id_obrony);
to działa dobrze do chwili, gdy atakujący ALBO broniący spełniają warunek - rekordy są pojedyncze.
Gdy jednak i atakujący i broniący w tym samym rekordzie spełniają warunek, czyli np. wpisuję literę "A" i gdy atakujący to MAK, a broniący to ADAM, pojawi się podwójny wpis (dwa identyczne rekordy).
Wiem, że to jest zgodne z zasadami Inner Join i tak to wręcz powinno działać (tworzy kombinację wszystkich rekordów jednej i drugiej tabeli).
Jak sformułować pytanie, aby jeżeli warunek jest spełniony dla ID_ATAK, to już nie powtarzał tego rekordu dla ID_OBRONY, czyli gdy atakujący i broniący spełniają warunek, to rekord ma się pojawić tylko raz ?
Z góry dziękuję za pomoc.