SQL: Unterschied zwischen LEFT JOIN, RIGHT JOIN und INNER JOIN unter Access

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

SQL

April 2009 | Permalink | Feedback