Złączenia tabel proszę o pomoc bo kombinuję 4 godziny i nie wychodzi mi tak jak powinno

Mam dwie tabele
1 Tabela zawiera zaproszenia (id_zaproszenia, id_user1, id_user2,..)

2 tabela użytkownicy a w tym id_uzytkownik którego id zawiera id_user1 albo id_user2 (zależy czy ja zaprosiłem czy mnie zaproszono)

Teraz muszę wyświetlić rekordy z tabeli 2 na podstawie danych z tabeli 1 i nie wiem jak to zrobić
Poniższe zapytanie (inne nazwy kolumn ale podaję dla przykładu) wyświetla poprawnie rekordy (bez powtórzeń) problem jest taki że ta tabela nie zawiera danych które chcę wyświetlić (nick, link avatara, ilość znajomych te dane przechowuje inna tabela )
  1. SELECT userId1 FROM znajomi WHERE userId2=$mojId AND accepted = 1 UNION SELECT userId2 FROM znajomi WHERE userId1 = $mojId AND accepted = 1;


Moje zapytania wyświetlają albo za dużo rekordów (podwójnie, razem z moim w liście znajomych)
  1. SELECT * FROM znajomi a inner join uzytkownicy b on b.id_uzytkownik = a.id_user_1 or b.id_uzytkownik = a.id_user_2
  2. WHERE b.id_uzytkownik=a.id_user_1 OR b.id_uzytkownik=a.id_user_2
  3. albo
  4. SELECT *
  5. FROM znajomi z1 JOIN uzytkownicy u2
  6. ON (u2.id_uzytkownik = z1.id_user_1 OR u2.id_uzytkownik = z1.id_user_2)
  7. WHERE z1.id_user_1='$id_user' OR z1.id_user_2='$id_user'


Do pomocy dostępne są zmienne
$id - zawiera id użytkownika którego przeglądamy listę znajomych
$id_user - zawiera id zalogowanego użytkownika