English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, imparerai come unire due tabelle per ottenere dati combinati.
Fino ad ora, tutte le query che hai visto sono concentrate su un unico tavolo. Ma nella vita reale, spesso hai bisogno di interrogare due o più tavoli e ottenere un set di risultati combinati. Questo si chiama join tecnico, perché coinvolge campi pubblici tra tabelle (外键)联接不同的表以创建数据的新视图。
为了容易理解这一点,让我们来看看下面employees和departments表。在这里,employees表的dept id列是departments表的外键。因此,可以将这两个表连接起来,得到组合的数据。
+--------+--------------+------------+---------+ | emp_id | emp_name | hire_date | dept_id | +--------+--------------+------------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 4 | | 2 | Tony Montana | 2002-07-15 | 1 | | 3 | Sarah Connor | 2005-10-18 | 5 | | 4 | Rick Deckard | 2007-01-03 | 3 | | 5 | Martin Blank | 2008-06-24 | NULL | +--------+--------------+------------+---------+ | +---------+------------------+ | dept_id | dept_name | +---------+------------------+ | 1 | Administration | | 2 | Customer Service | | 3 | Finance | | 4 | Human Resources | | 5 | Sales | +---------+------------------+ | |
Tabella: employees | Tabella: departments |
Attenzione:Per collegare le tabelle, i dati delle colonne utilizzate per il collegamento devono corrispondere, non è necessario che i nomi delle colonne corrispondano.
Il tipo di collegamento creato nella query influisce sulle righe visualizzate nel risultato del set. Puoi creare i seguenti tipi di collegamento:
Il collegamento restituisce solo le righe che hanno corrispondenze nelle due tabelle collegate. Ad esempio, puoi collegaredepartmentsLe tabelle si uniscono per creare un insieme di risultati che mostrano il nome del dipartimento di ogni dipendente. Nei collegamenti interni, i dipendenti senza informazioni di dipartimento non sono inclusi nei risultati, e i dipartimenti senza dipendenti non sono inclusi nei risultati.
Nel capitolo successivo, impareremo riguardo aCollegamento interno更多信息。
外联接是内部联接的扩展。 即使外联接在联接表中没有相关行,外联接也会返回这些行。 外联接共有三种类型:左联接(left join),右联接(right join)和完全联接(full join)
我们将在后面的章节中详细了解外部联接的这些变体。
交叉联接是没有联接条件的联接。一个表的每一行与另一表的每一行合并。这种类型的结果集称为笛卡尔乘积或叉积。例如,employees和departments表之间的交叉连接产生了一个结果集,其中每个可能的雇员/部门组合都有一行。
在接下来的章节中,我们将学习有关交叉连接的更多信息。