Weinberger: Select abfrage aus 2 Tabellen, mit begrenzter Ausgabe

In meiner Datenbank sind zwei Tabellen, in der einen sind die Datensätze zu meinen Referaten,
in der zweiten sind zu jedem Referat ein oder mehrere Dokumente zugeordnet.

Datenbank 1
------------

id ! name ! datum
1 ! Deutsch ! 11.01.2012
2 ! Erdkunde ! 10.02.2012

Datenbank 2
------------
id ! zuordnung
1 ! 1
2 ! 1
3 ! 1
4 ! 2
5 ! 2

Nun möchte ich die neusten 10 Referate abrufen und dazu immer ein Dokument aus der Datenbank2 auch wenn mehrere da sind, am besten immer das mit der kleinsten ID.

SELECT a.name, b.id FROM datenbank1 a, datenbank2 b WHERE a.id=b.zuordnung ORDER by a.datum DESC LIMIT 10

Das Ergebnis ist, das die letzen 10 Datensätze aus der Datenbank1 ausgegeben werden, doch auch alle Dokumente:

Ausgabe
-------------
Deutsch ! 1
Deutsch ! 2
Deutsch ! 3
Erdkunde ! 4
Erdkunde ! 5

Es sollte aber nur folgendes ausgegeben werden:

Ausgabe
----------
Deutsch ! 1
Erdkunde ! 4

Es wäre toll, wenn mir jemand bei meinem Problem unter die Arme greifen würde!

Weini

  1. Entschuldigung, sollte eigentlich nicht vorkommen, aber ich habe noch etwas vergessen.

    Wenn in der Datenbank2 keine Dokumente zu einem Eintrag in der Datenbank1 zugeordnet sind, erlogt auch keine Ausgabe vom Datensatz der Tabelle1.

    Weini

  2. Hallo,

    Nun möchte ich die neusten 10 Referate abrufen und dazu immer ein Dokument aus der Datenbank2 auch wenn mehrere da sind, am besten immer das mit der kleinsten ID.

    eine typische Aufgabe für korrelierte Unterabfragen.

    Freundliche Grüße

    Vinzenz