Udostępnij za pośrednictwem


Jak: tworzenie ręcznie samosprzężeniach

Można sprząc tabelę do siebie, nawet jeśli tabela nie ma relacji zwrotnej w bazie danych.Można na przykład użyć autosprzężenia do znalezienia par autorów mieszkających w tym samym mieście.

Podobnie jak w przypadku każde sprzężenie, autosprzężenie wymaga przynajmniej dwóch tabel.Różnica stanowi, że zamiast drugiej tabeli do kwerendy, można dodać drugie wystąpienie tej samej tabeli.W ten sposób można porównać kolumnę w pierwszej instancji tabeli z tą samą kolumną w drugiej instancji, co umożliwia porównanie wartości w kolumnie do siebie.Kwerendy i projektanta widoku przypisuje alias drugiej instancji tabeli.

Na przykład, jeśli są tworzenie autosprzężenia do znalezienia wszystkich par autorów mieszkających w Berkeley, można porównać city kolumny w pierwszej instancji tabeli przeciwko city kolumna w drugiej instancji.Wynikowa kwerenda może wyglądać następująco:

   SELECT 
         authors.au_fname, 
         authors.au_lname, 
         authors1.au_fname AS Expr2, 
         authors1.au_lname AS Expr3
      FROM 
         authors 
            INNER JOIN
            authors authors1 
               ON authors.city 
                = authors1.city
      WHERE
         authors.city = 'Berkeley'

Tworzenie autosprzężenia często wymaga wielu warunków sprzężenia.Aby zrozumieć, dlaczego, rozważmy wyniki poprzedniej kwerendy:

   Cheryl Carson       Cheryl Carson
   Abraham Bennet      Abraham Bennet
   Cheryl Carson       Abraham Bennet
   Abraham Bennet      Cheryl Carson

Pierwszy wiersz jest bezużyteczny; Wskazuje on, że Cheryl Carson mieszka w tym samym mieście co Cheryl Carson.Drugi wiersz jest równie bezużyteczny.Aby wyeliminować takie dane, należy dodać inny warunek zachowujący tylko te wiersze wynikowe, w których dwa nazwiska autorów opisują innych autorów.Wynikowa kwerenda może mieć następującą postać:

   SELECT 
         authors.au_fname, 
         authors.au_lname, 
         authors1.au_fname AS Expr2, 
         authors1.au_lname AS Expr3
      FROM 
         authors 
            INNER JOIN
            authors authors1 
               ON authors.city 
                = authors1.city
               AND authors.au_id
                <> authors1.au_id
      WHERE
         authors.city = 'Berkeley'

Zwiększona zestawu wyników:

   Cheryl Carson       Abraham Bennet
   Abraham Bennet      Cheryl Carson

Jednak te dwa wiersze wynikowe stanowią powtórzenie.Pierwszy mówi Carson mieszka w tym samym mieście co Bennet, a drugi mówi, że Bennet mieszka w tym samym mieście co Carson.Aby wyeliminować dublowanie informacji, można zmienić drugi warunek sprzężenia z "nie równa się" do "mniejszy niż". Wynikowa kwerenda może mieć następującą postać:

   SELECT 
         authors.au_fname, 
         authors.au_lname, 
         authors1.au_fname AS Expr2, 
         authors1.au_lname AS Expr3
      FROM 
         authors 
            INNER JOIN
            authors authors1 
               ON authors.city 
                = authors1.city
               AND authors.au_id
                < authors1.au_id
      WHERE
         authors.city = 'Berkeley'

I zestaw wyników wygląda następująco:

   Cheryl Carson       Abraham Bennet

[!UWAGA]

Na danym komputerze mogą być używane inne nazwy lub lokalizacje pewnych elementów interfejsu użytkownika programu Visual Studio, które są używane w poniższych instrukcjach. Używana wersja programu Visual Studio oraz jej ustawienia określają te elementy. Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.

Aby ręcznie utworzyć samosprzężenie

  1. Dodaj do okienka Diagram, tabeli lub obiektu wartościami przechowywanymi w tabeli, którą chcesz pracować z.

  2. Dodaj tę samą tabelę ponownie, tak, aby w okienku Diagram pokazuje tej samej tabeli lub obiektu wartościami przechowywanymi w tabeli dwukrotnie w okienku diagramu.

    Kwerendy i widoku Projektant przypisuje alias drugiej instancji, przez dodanie kolejnego numeru do nazwy tabeli.Ponadto kwerendy i widoku Projektant tworzy linię sprzężenia między dwoma wystąpieniami tabeli lub obiektu wartościami przechowywanymi w tabeli w okienku diagramu.

  3. Kliknij prawym przyciskiem myszy linię sprzężenia, a następnie wybierz polecenie Właściwości z menu skrótów.

  4. W oknie dialogowym właściwości kliknij Dołącz warunek i wpisz tekst i kliknij przycisk wielokropka (…) z prawej strony pola właściwości.

  5. W oknie dialogowym sprzężenia Zmień operator porównania między kluczami podstawowymi.Na przykład może zmienić operator mniej niż (<).

  6. Utwórz dodatkowe warunki sprzężenia (na przykład autorzy.kod = autorzy1.kod) przeciągając nazwę kolumny sprzężenia podstawowego w pierwszej tabeli lub obiektu wartościami przechowywanymi w tabeli i upuszczając go na odpowiedniej kolumny w drugim wystąpieniu.

  7. Określ inne opcje kwerendy, takie jak kolumny wyjociowe, warunki wyszukiwania i porządek sortowania.

Zobacz też

Zadania

Jak: tworzenie samosprzężeniach automatycznie

Inne zasoby

Wykonywanie kwerendy za pomocą sprzężeń