phpbar.de logo

Mailinglisten-Archive

[dbs] Join, aber wie

[dbs] Join, aber wie

Ralf Geschke ralf at kuerbis.org
Mit Jun 2 18:50:58 CEST 2004


> ich habe zwei Tabellen, in einer stehen Adressen und in einer anderen 
> stehen Kontaktangaben dazu. Zu jeder Adresse können verschiedene 
> Kontaktangaben stehen, jede Kontaktangabe ist aber mit einem Datum 
> versehen.
> 
> Ich will jetzt einen Query, der zu jeder Adresse die jeweils jüngste 
> Kontaktangabe ausgibt:
> 
> Wenn ich bspw.
> 
> SELECT t1.firma, t1.id, t2.aquisedatum FROM adressen t1, kontakte t2 
> WHERE t1.id=t2.adress_id GROUP BY t1.id ORDER BY t2.aquisedatum DESC
> 
> eingebe, erhalte ich zwar zu jeder Adresse einen Kontakt, aber nicht den 
> jüngsten, was an dem GROUP Statement liegt. Es muss doch aber irgendwie 
> möglich sein, dass t2.aquisedatum nur das jüngste Kontaktdatum ergibt.

Ohne die genaue Tabellenstruktur zu kennen, ist ein Join
fix aus der Dose immer etwas schlecht zu schreiben, daher
folgende Tipps:
- Schau' Dir mal die Funktionen max() bzw. min() an,
- denke daran, dass sich eine Tabelle auch mehrmals
einsetzen laesst,
- und zum Schluss koennte ein HAVING auch noch helfen.

Damit und mit ein wenig RTFM muesste Dir die Query-Syntax
nun eigentlich gelingen.

Beste Gruesse,
    Ralf
-- 
::  php::bar | Der Treffpunkt fuer Einsteiger und Fortgeschrittene
::  http://phpbar.de


php::bar PHP Wiki   -   Listenarchive