Das es nur ein Datensatz ist liegt doch nur am LIMIT.
SELECT f.name, h.fall_beschreibung
FROM fall AS f, fall_historie AS h
WHERE f.id = h.fall_id AND $zeitpunkt > h.zeitpunkt
ORDER BY zeitpunkt
Bringt ein Resultset mit _allen_ namen aus fall mit der fall_beschreibung aus fall_historie, für die es einen Eintrag in fall_historie gibt, dessen zeitpunkt < $zeitpunkt ist, sortiert nach zeitpunkt. Dadurch, durch die Sortierung, können die Fälle natürlich durcheinander geraten, also nicht aufeinander folgend stehen. Eventuell solltest Du hauptsächlich nach h.fall_id und nur innerhalb gleicher ids nach zeitpunkt sortieren.
erm. ja ... ich möchte in der Ausgabe ja _alle_ daten aus fall haben, aber die von fall_historie limitiert auf eins... das ist der kleine knackpunkt der sache...
So dass ich im Endeffekt alle meine Fälle hab, und in einer Tabelle der ich ein Datum übergebe sehen kann, welchen Status alle diese Sachen jeweils diesem Zeitpunkt hatte ... alle anderen zeitpunkte sollen nicht mit ausgegeben werden, sondern alle fälle und jeweils nur ein datensatz zu jedem Fall, aus fall_historie.
als konkretes Beispiel:
nochmal die Tabellen:
fall
id
name
fall_historie
id
fall_id
fall_beschreibung
zeitpunkt
sagen wir mal in fall steht drin:
1 - Projekt Rot
2 - Projekt Blau
3 - Projekt Grün
in fall_historie steht drin:
1 - 1 - Eröffnung - 1.1.2004
2 - 1 - erster Entwurf - 3.1.2004
3 - 2 - Eröffnung - 7.1.2004
4 - 2 - erster Entwurf - 8.1.2004
5 - 3 - Eröffnung - 9.1.2004
6 - 2 - zweiter Entwurf - 10.1.2004
7 - 1 - zweiter Entwurf - 12.1.2004
8 - 2 - Abschluss - 15.1.2004
9 - 1 - Abschluss - 16.1.2004
Bei zB Eingabe des Zeitpunktes: 4.1.2004
Ausgabe:
Projekt Rot - erster Entwurf
oder zB als Zeitpunkt dann : 10.1.2004
erwünschte Ausgabe:
Projekt Rot - erster Entwurf
Projekt Blau - zweiter Entwurf
Projekt Grün - Eröffnung
oder nachher Zeitpunkt: 17.1.2004
erwünschte Ausgabe:
Projekt Rot - Abschluss
Projekt Blau - Abschluss
Projekt Grün - Eröffnung
und da hab ich keine genaue Idee, wie ich das verknüpfen kann :(
Versteh ich das übrigens mit den Joins richtig, das sich left, right und inner join nur unterscheiden, wenn tabellenfelder NULL sind und nicht vorhanden?
Vielen Dank bis hierher ;)