Anhand von Code-Beispielen, ohne viel Erklärung, soll hier kurz der Unterschied der JOINs unter Access aufgezeigt werden.
Die Ausgangstabellen:
Categories
| ID | Category |
|---|---|
| 1 | Funiture |
| 2 | Automobiles |
| 3 | Buildings |
| 4 | Computer |
Articles
| ID | CategoryID | Article |
|---|---|---|
| 1 | 1 | Table |
| 2 | 1 | Chair |
| 3 | 2 | Car |
| 4 | 2 | Truck |
| 5 | 4 | Keyboard |
| 6 | 4 | Mouse |
| 7 | 5 | Hand |
| 8 | 5 | Foot |
Alle Artikel mit dazugehöriger Kategorie, auch die Artikel ohne Kategorie:
SELECT Articles.Article, Categories.Category FROM Articles LEFT JOIN Categories ON Articles.CategoryID = Categories.ID
| Article | Category |
|---|---|
| Table | Funiture |
| Chair | Funiture |
| Car | Automobiles |
| Truck | Automobiles |
| Keyboard | Computer |
| Mouse | Computer |
| Hand | |
| Foot |
Nur Artikel mit dazugehöriger Kategorie, auch die Kategorien ohne Artikel:
SELECT Articles.Article, Categories.Category FROM Articles RIGHT JOIN Categories ON Articles.CategoryID = Categories.ID
| Article | Category |
|---|---|
| Table | Funiture |
| Chair | Funiture |
| Car | Automobiles |
| Truck | Automobiles |
| Buildings | |
| Keyboard | Computer |
| Mouse | Computer |
Nur Artikel mit dazugehöriger Kategorie, (keine leeren Artikel und Kategorien):
SELECT Articles.Article, Categories.Category FROM Articles INNER JOIN Categories ON Articles.CategoryID = Categories.ID - oder - SELECT Articles.Article, Categories.Category FROM Articles, Categories WHERE Articles.CategoryID = Categories.ID;
| Article | Category |
|---|---|
| Table | Funiture |
| Chair | Funiture |
| Car | Automobiles |
| Truck | Automobiles |
| Keyboard | Computer |
| Mouse | Computer |