Sdílet prostřednictvím


Jak: vytvoření vnějšího spojení

Standardně dotazu a Návrhář zobrazení vytvoří vnitřní spojení mezi tabulkami.Pokud chcete zahrnout v množině výsledků, které v připojované tabulce nemají odpovídající řádky dat, můžete vytvořit vnější spojení.

Při vytváření vnějšího spojení pořadí tabulek v příkazu SQL (jak se projeví v podokně SQL), je důležité.První tabulky, které přidáte, se stane "left" tabulky a v druhé tabulce se stane "pravé" tabulky.(Skutečné pořadí, ve kterém jsou tabulky zobrazeny v podokně Diagram není významný.) Při zadání levé nebo pravé vnější spojení odkazujete na přidané tabulky dotazu a pořadí, v jakém jsou uvedeny v příkazu SQL v pořadí v podokně SQL.

[!POZNÁMKA]

Ve vašem počítači se pro některé z prvků uživatelského rozhraní sady Visual Studio mohou zobrazit jiné názvy a umístění, než jsou uvedeny v následujících pokynech. Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením. Další informace naleznete v tématu Nastavení aplikace Visual Studio.

Chcete-li vytvořit vnější spojení

  1. Vytvořte spojení, automaticky nebo ručně.For details, see Jak: automaticky spojení tabulek or Jak: tabulky spojit ručně.

  2. V podokně Diagram a potom vyberte spojnici Návrhář dotazu nabídce zvolte Vybrat všechny řádky z <tablename>, výběrem příkazu, který obsahuje tabulky, jejichž další řádky, které chcete zahrnout.

    • Zvolte první tabulky vytvoříte levé vnější spojení.

    • Vyberte druhé tabulky vytvoříte pravé vnější spojení.

    • Zvolte obě tabulky vytvořit úplné vnější spojení.

      [!POZNÁMKA]

      Některé databáze, jako je například Oracle, nepodporují úplné vnější spojení.

Zadáte-li vnější spojení, dotazu nebo zobrazení návrháře upraví čáru spojení označte vnější spojení.

Navíc dotaz a Návrhář zobrazení upravuje příkaz SQL v podokně SQL tak, aby odrážely změny typu spojení, jak ukazuje následující příkaz:

SELECT employee.job_id, employee.emp_id,
   employee.fname, employee.minit, jobs.job_desc
FROM employee LEFT OUTER JOIN jobs ON 
    employee.job_id = jobs.job_id

Protože vnější spojení obsahuje neodpovídající řádky, můžete ji najít řádky, které porušují omezení cizího klíče.Provedete to tak, vytvořit vnější spojení a potom přidejte podmínku vyhledávání najít řádky, ve kterých je sloupec primárního klíče pravé tabulky hodnotu null.Například následující vnější spojení nalezne řádky employee nemají odpovídající řádky v tabulce jobs tabulky:

SELECT employee.emp_id, employee.job_id
FROM employee LEFT OUTER JOIN jobs 
   ON employee.job_id = jobs.job_id
WHERE (jobs.job_id IS NULL)

Viz také

Referenční dokumentace

Dialogové okno spojení

Další zdroje

Dotazování pomocí spojení