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í
Vytvořte spojení, automaticky nebo ručně.For details, see Jak: automaticky spojení tabulek or Jak: tabulky spojit ručně.
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)