Przy użyciu tabeli dwukrotnie w jednej kwerendzie
Można użyć tych samych porach tabeli dwa (lub więcej) w jednej kwerendzie.Istnieje kilka sytuacji, w których można to zrobić.
Tworzenie autosprzężenia z relacją zwrotną można sprząc tabelę z samą sobą przy użyciu relacji zwrotnej — relacji, w którym odwołującego się kolumny klucza obcego oraz kolumny klucza podstawowego do określonych są w tej samej tabeli.Na przykład załóżmy, że tabela pracownik zawiera dodatkową kolumnę, employee.manager_emp_id i że istnieje klucz obcy z między polami manager_emp_id (id_pracownika).W każdym wierszu tabeli employee w kolumnie manager_emp_id określa przełożonego danego pracownika.Bardziej precyzyjnie wskazuje pracownika przełożonemu pracownika.
Sprzęgając tabelę z samą sobą przy użyciu relacji zwrotnej, można ustanowić zestaw wyników, w którym każdy wiersz zawiera nazwisko przełożonego i nazwę jednego z jego pracowników.Wynikowa instrukcja SQL może mieć następującą postać:
SELECT boss.lname, boss.fname, employee.lname, employee.fname FROM employee INNER JOIN employee boss ON employee.manager_emp_id = boss.emp_id
Aby uzyskać więcej informacji na temat tworzenia sprzężeń przy użyciu relacji zwrotnej, zobacz Jak: tworzenie samosprzężeniach automatycznie.
Tworzenie autosprzężenia bez relacji zwrotnej do siebie można sprząc tabelę bez przy użyciu relacji zwrotnej.Na przykład można ustanowić zestaw wyników, w którym każdy wiersz opisuje pracownika i opisywał dla określonego pracownika.(Opiekun to pracownik o wyższym poziomie zadania). Wynikowa instrukcja SQL może mieć następującą postać:
SELECT employee.fname, employee.lname, mentor.fname, mentor.lname FROM employee INNER JOIN employee mentor ON employee.job_lvl < mentor.job_lvl
Należy zauważyć, że w sprzężeniu użyto warunku innego niż równość.Aby uzyskać więcej informacji na temat sprzęgania tabel za pomocą warunków innych niż równość zobacz Operatory porównania Join.
Aby uzyskać więcej informacji o tworzeniu samosprzężeniach przy użyciu kolumn niepowiązanych, Jak: tworzenie ręcznie samosprzężeniach.
Przy użyciu tabeli dwa razy bez autosprzężenia nawet bez autosprzężenia, można użyć dwa razy tej samej tabeli (lub więcej) w kwerendzie.Na przykład można ustanowić zestaw wyników zawierający pozostałe książki autora lub autorów ulubionej książki.W takim przypadku Użyj tabeli AutorzyTytułów dwukrotnie — raz, aby znaleźć autorów ulubionej książki (jest gniew wroga?) i raz, aby znaleźć pozostałe książki tych autorów.Wynikowa instrukcja SQL może mieć następującą postać:
SELECT other_title.title FROM titles favorite_title INNER JOIN titleauthor favorite_titleauthor ON favorite_title.title_id = favorite_titleauthor.title_id INNER JOIN authors ON favorite_titleauthor.au_id = authors.au_id INNER JOIN titleauthor other_titleauthor ON authors.au_id = other_titleauthor.au_id INNER JOIN titles other_title ON other_titleauthor.title_id = other_title.title_id WHERE favorite_title.title = 'Is Anger the Enemy?' AND favorite_title.title <> other_title.title
[!UWAGA]
Aby rozróżnić wielokrotnego użycia jakichkolwiek jednej tabeli, powyższa kwerenda użyto następujących aliasów: UlubionaTytuł, celu (other_titleauthor) i InneTytuł (other_title).Aby uzyskać więcej informacji na temat aliasów, zobacz Jak: Tworzenie aliasów tabel.
Zobacz też
Koncepcje
Praca z danymi w okienku wyników