Polecenie SQL wyświetlające rekordy z tabeli

0

Witam, może temat postu sugeruje błahy problem i może jest on prosty, ale nie do końca osobiście wiem jak skonstruować zapytanie Select.
Chodzi mianowicie o to, że mam dwie tabele OSOBY i ZAPISANE_OSOBY (połączone relacją), w pierwszej gromadzone są dane na temat osób, w drugiej znajdują się identyfikatory osób i data_zapisu. Chodzi mi o to, jak wydobyć dane z tabeli OSOBY , które nie występują w tabeli ZAPISANE_OSOBY ( czyli po prostu wyświetlić osoby "nie zapisane").
Mały zarys tabel z przykładowymi danymi na obrazku w załączniku:

P.S. Efektem ma być wyświetlenie podkreślonych osób

1

select *
from osoby o
where o.id_osoby not in (select z.id_osoby from zapisane_osoby z)

0

zapewne istnieje lepsze rozwiazanie ale mozesz zrobic cos takiego (to bedzie pseudokod)

SELECT * 
  FROM osoby
  LEFT JOIN zapisane_osoby
    on osoby.id == zapisane_osoby.id
  WHERE  osoby.id <> zapisane_osoby.id
0

Oracle

SELECT * 
  FROM OSOBY A
WHERE NOT EXISTS(SELECT 1 FROM ZAPISANY_OSOBY B WHERE B.ID_OSOBY = A.ID_OSOBY) 
0

OK, dzięki,

2

@fasadin lepiej tak

SELECT * 
  FROM osoby
  LEFT JOIN zapisane_osoby
    ON osoby.id = zapisane_osoby.id
  WHERE  zapisane_osoby.id IS NULL

1 użytkowników online, w tym zalogowanych: 0, gości: 1