Usuwanie Krotek Z tabeli

0

Mam nastepujący problem mam tabele pracownicy w kórej jest id_prac i id_szefa jest 4 pracownikow ktorzy są szefami czyli id_prac= od 1 do 4
i chciałbym usunąc tyhc ktorzy nie są szefami. nie wywala mi zadnego błędu po prostu nic nie usuwa.
pomocy.Ponizej załaczam kwerende ktorej uzywałem.

DELETE FROM pracownicy
where id_prac NOT IN (SELECT * from ( SELECT DISTINCT(id_szefa) FROM pracownicy) a)

0

Po pierwsze primo nie możesz mieć selctc * w warunku i porównać to z id pracownika.

0

No to zmień delete na select * i zobacz co zwraca.

Podejrzewam, że może mieć to związek z null dla pracowników ktorzy są szefami i nie mają id_szefa, np w mysql:

To comply with the SQL standard, IN() returns NULL not only if the expression on the left hand side is NULL, but also if no match is found in the list and one of the expressions in the list is NULL.

Więc zmień na

select *  FROM pracownicy
where id_prac NOT IN (SELECT DISTINCT(id_szefa) FROM pracownicy WHERE id_szefa is not null)

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