phpbar.de logo

Mailinglisten-Archive

[php] [MySQL] Einen join über 3 (?) Tabellen

[php] [MySQL] Einen join über 3 (?) Tabellen

Michael Detambel detambel at bfw-oberhausen.de
Don Apr 28 12:28:44 CEST 2005


Schmuck, Michael schrieb:
> 
> Ich habe diese 3 Tabellen: 
> 
> 	1. Fahrzeuge: 	ID, Kennzeichen, Typ ...
> 	2. Firma:		ID, Name, Adresse ...
> 
> 	3. firma_has_fzg: idFZG, idFIRMA, Zugehörig seit (datum)

Verständnisfrage: Wenn ein Fahrzeug (aktuell) nur einer Firma zugeordnet 
  ist und die Firma mehrere Fahrzeuge haben kann, dann ist das eine 
1:n-Beziehung, für die 2 Tabellen (Fahrzeuge, Firma) ausreichen, mit 
firma.ID als FK in Tabelle fzg (z. B. fzg.firma_id).

 > Soweit so gut, nur bekomme ich nun nicht nur die Autos raus die diese 
 > Firma aktuell hat, sondern auch die sie mal hatte. Wie kann ich das > 
mit nur einer Query auf die Datenbank lösen?

Um zu wissen, ob ein Fahrzeug nicht mehr im Bestand wissen, bräuchte man 
  ein Datenfeld "Ausgesondert am (Datum)", z. B. fzg.ausgesondert_am. 
Wenn es außerdem keine Fahrzeuge gibt, die keiner Firma zugeordnet sind, 
geht auch ein INNER JOIN.

  SELECT
    fzg.id,
    fzg.kennzeichen,
    firma.name
  FROM
    fzg INNER JOIN firma ON fzg.firma_id = firma.id
  WHERE
    firma.id = 123 AND fzg.ausgesondert_am IS NULL;


Mfg
Michael Detambel


php::bar PHP Wiki   -   Listenarchive