Witam mam następujące zapytanie SQL, które daje mi Scheme_Id które występują zarówno w ProjectSchemes i schematach stołowych. Chcę usunąć wszystkie rekordy z tabeli Schematy, które nie mają rekordu tabeli ProjectSchemes. Jak mogę to zrobić? Proszę pomóż. Używam MSSQLJak usuwać rekordy NOT IN
select scheme_id from Schemes where Scheme_Id
in(select s.Scheme_Id from Projects p
inner join ProjectSchemes ps on ps.Project_Id=p.Project_Id
inner join Schemes s on s.Scheme_Id=ps.Scheme_Id)
Próbuję wykonać następujące czynności, ale to nie działa. Nie oznacza, że nie rekordy dotknięte działa, ale jak sprawdziłem mój stół Schematy istnieje tak wiele rekordów, że ich scheme_id nie można znaleźć na stole ProjectSchemes
delete from Schemes where Scheme_Id
not in(select s.Scheme_Id from Projects p
inner join ProjectSchemes ps on ps.Project_Id=p.Project_Id
inner join Schemes s on s.Scheme_Id=ps.Scheme_Id)
Co oznacza "nie działa"? – wallyk
Co otrzymałeś? – uvinod
Twój podselekcja prawdopodobnie zwraca wartości NULL. Zobacz odpowiedź Rachcha na rozwiązanie. I powinieneś podać swój DBMS. –