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 |