PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [mySQL] Tabellen verknüpfen



sonicyouth
10-03-2004, 19:01
Ich hab folgendes problem:
ich hab eine tabelle forum:

id | text | date
1 bla 03-20-2002
2 blub 04-02-2003
3 bli 02-10-2002

und eine tabelle forum_posts:

id | text | date
2 blab 02-03-2004
2 blub 05-02-2003
1 bla 01-02-2004

ich möchte nun mit einer sql-abfrage, aus der tabelle forum_posts das aktuellste datum von den zeilen haben die die gleiche id haben und das ergebnis mit der passenden id in tabelle 1 verknüpfen, das sähe dann so aus:

id | text | forum_posts.date
2 blub 02-03-2004
1 bla 01-02-2004

so weit, so gut. nun soll noch jede zeile aus tabelle 1 deren id nicht in tabelle 2 vorkommt an die neue abfrage angehängt werden, was dann so aussehen würde:

id | text | forum_posts.date
2 blub 02-03-2004
1 bla 01-02-2004
3 bli 02-10-2002

Der erste schritt ließe sich, glaub ich, mit JOIN bewerkstelligen. gibt es auch eine möglichkeit den zweiten schritt auszuführen? dass man, eine zeile der einen tabelle an eine abfrage anhängt?

Christoph
12-03-2004, 13:11
Tupel, die nicht die Join-Bedingung erfüllen, erhält man bei einem OUTER JOIN (statt INNER JOIN, was das Defaultverhalten der LEFT/RIGHT JOIN Klausel ist).

Ansonsten kann man beliebige SELECT Ergebnisse mittels UNION [ALL] zusammenmischen.

Schau mal in Deinem SQL-Buch unter den Stichworten OUTER JOIN und UNION nach.