Thread View: pl.comp.bazy-danych
2 messages
2 total messages
Started by Adam
Sun, 02 Sep 2018 18:31
MS-SQL, kasowanie rekordów nie mających odniesień.
Author: Adam
Date: Sun, 02 Sep 2018 18:31
Date: Sun, 02 Sep 2018 18:31
60 lines
2167 bytes
2167 bytes
Witajcie. Pomóżcie, bo mam jakieś zaćmienie. Jest sobie podstawowa tabela z towarami i kilka tabel pomocniczych, miedzy innymi [Dane_Bin] i [DaneBin_Linki] [DaneBin_Linki] zawierają odniesienia (ich typ, opis, itd) od tabeli głównej i ewentualnie dalej do tabeli [Dane_Bin]. [Dane_Bin] to głównie fotografie. Część powiązań towarów z fotografiami została usunięta, ale same zapisy zostały w [Dane_Bin] Chcę usunąć "sieroty" z [Dane_Bin] - czyli takie rekordy, które nie są wskazywane przez [DaneBin_Linki]. [Dane_Bin] - niektóre kolumny: DaB_DabID - identyfikator rekordu [DaneBin_Linki] - niektóre kolumny: DBL_DabId - identyfikator rekordu DBL_DabId - wskaźnik do tabeli [Dane_Bin] relacja: [DaneBin_Linki].DBL_DabId -> [Dane_Bin].DaB_DabID Czyli chcę usunąć takie rekordy z DaB_DabId, na które nie wskazują DBL_DabId. Przykład: [Dane_Bin] 2 3 5 7 8 [DaneBin_Linki] 23 | 3 24 | 4 25 | 6 26 | 7 27 | 9 Z [Dane_Bin] chcę więc usunąć 2, 5 i 8, bo nie wskazują na nie żadne rekordy z [DaneBin_Linki]. Jak to zrobić? Jakaś tabela pomocnicza? Kursorem jechać? Nigdy chyba nie używałem kursorów. -- Pozdrawiam. Adam
Re: MS-SQL kasowanie rekordw nie maj cych odniesieÅ.
Author: ydziO
Date: Sun, 02 Sep 2018 18:52
Date: Sun, 02 Sep 2018 18:52
59 lines
2577 bytes
2577 bytes
On 2018-09-02 18:31:40 +0000, Adam said: > Witajcie. > > Pomóżcie, bo mam jakieś zaćmienie. > > Jest sobie podstawowa tabela z towarami i kilka tabel pomocniczych, > miedzy innymi [Dane_Bin] i [DaneBin_Linki] > > [DaneBin_Linki] zawierają odniesienia (ich typ, opis, itd) od tabeli > głównej i ewentualnie dalej do tabeli [Dane_Bin]. > > [Dane_Bin] to głównie fotografie. > > Część powiązań towarów z fotografiami została usunięta, ale same zapisy > zostały w [Dane_Bin] > > Chcę usunąć "sieroty" z [Dane_Bin] - czyli takie rekordy, które nie są > wskazywane przez [DaneBin_Linki]. > > [Dane_Bin] - niektóre kolumny: > DaB_DabID - identyfikator rekordu > > [DaneBin_Linki] - niektóre kolumny: > DBL_DabId - identyfikator rekordu > DBL_DabId - wskaźnik do tabeli [Dane_Bin] > > relacja: [DaneBin_Linki].DBL_DabId -> [Dane_Bin].DaB_DabID > > Czyli chcę usunąć takie rekordy z DaB_DabId, na które nie wskazują DBL_DabId. > > > > Przykład: > > [Dane_Bin] > 2 > 3 > 5 > 7 > 8 > > [DaneBin_Linki] > 23 | 3 > 24 | 4 > 25 | 6 > 26 | 7 > 27 | 9 > > Z [Dane_Bin] chcę więc usunąć 2, 5 i 8, bo nie wskazują na nie żadne > rekordy z [DaneBin_Linki]. > > Jak to zrobić? > Jakaś tabela pomocnicza? > Kursorem jechać? Nigdy chyba nie używałem kursorów. Delete from Dane_Bin where tabela1 not in (select tabela2 from daneBin_linki) Najpierw oczywiście zrób sobie selecta żeby sprawdzić czy to chciałeś.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads