Cześć wszystkim potężnym SQLsuperherom tam .. Czy ktoś może mnie uratować przed nieuchronną katastrofą i ruiną?Wstaw rekord do tabeli, jeśli wpis nie istnieje w innej tabeli - z dodatkowym wykręceniem
Pracuję z programem Microsoft Access SQL. Chciałbym wybrać rekordy w jednej tabeli (tabela 1), które nie pojawiają się w innym (tabela 2) .., a następnie wstawić nowe rekordy do tabeli 2, które są oparte na rekordach w tabeli 1, w następujący sposób:
[tabela 1] file_index: nazwa pliku
[Tabela 2] file_index: celeb_name
chcę:
Zaznacz wszystkie rekordy z Tabela1 gdzie [nazwa pliku] jest jak AUD i której odpowiada [file_index] wartość nie istnieć w tabela2 z polem [celeb_name] = 'Audrey Hepburn'
Z tej selekcji Następnie chcę, aby wstawić nowy rekord do [Table2]
[file_index] = [Tabela1]. [file_index ] [celeb_name] = 'Audrey'
Istnieje jeden do wielu między [file_index] w tabeli 1. [] i [tabeli2] jeden rekord [Tabela 1], w wielu [tabeli2].
Wielkie dzięki
Tor - naprawdę jesteś potężnym bóg SQL, jak sugeruje twoje imię. Dziękuję bardzo. Udało się – bonzo46
NOT IN nie jest dobrze zoptymalizowany w Jet/ACE, ponieważ często nie będzie korzystać z indeksów po obu stronach (lub po obu stronach w niektórych przypadkach). AND OUT JOIN będzie o wiele bardziej wiarygodny, ponieważ zawsze używa indeksów, jeśli połączone pola są indeksowane. –
@ David-W-Fenton - Każdy, kto używa Accessa i oczekuje wydajności, powinien naprawdę wyglądać gdzie indziej ...;) –