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 |