Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DB Modell für Fahrzeug, Marke, Modell? (https://www.delphipraxis.net/174124-db-modell-fuer-fahrzeug-marke-modell.html)

Sir Rufo 5. Apr 2013 14:16

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Zitat:

Zitat von Jumpy (Beitrag 1210115)
Code:
Select Fahrzeug.* From Fahrzeug, Modell
Where Fahrzeug.Farbei='rot'
and Modell.Bezeichnung='Q7'
Nach Audi brauchste nicht fragen, da ja Q7 automatisch von Audi ist.

Die Abfrage ist aber auch nur solange eindeutig, wie es tatsächlich keine "Q7" Modelle von anderen Marken gibt.
Somit also besser so abfragen
SQL-Code:
SELECT Fahrzeug.* 
  FROM Fahrzeug
  JOIN Modell ON Fahrzeug.Modell_ID = Modell.ID
  JOIN Marke ON Modell.Marke_ID   = Marke.ID
 WHERE Fahrzeug.Farbe    = 'rot'
   AND Marke.Bezeichnung = 'Audi'
   AND Modell.Bezeichnung = 'Q7'

jfheins 5. Apr 2013 14:19

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1210117)
Somit also besser so abfragen
SQL-Code:
SELECT Fahrzeug.* 
  FROM Fahrzeug, Marke, Modell
 WHERE Fahrzeug.Farbe    = 'rot'
   AND Marke.Bezeichnung = 'Audi'
   AND Modell.Bezeichnung = 'Q7'

Möööp, du hast die JOIN-Bedingungen vergessen :mrgreen:

bzw. nachträglich reineditiert. So kann man's lassen. Und du bekommst einen virtuellen Keks für die Verwendung von JOIN ON statt alles in das where reinzupacken ;-)

p80286 5. Apr 2013 14:23

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Zitat:

Zitat von jfheins (Beitrag 1210118)
Und du bekommst einen virtuellen Keks für die Verwendung von JOIN ON statt alles in das where reinzupacken ;-)

Das hab ich gelesen!

:duck:

Gruß
K-H

Sir Rufo 5. Apr 2013 14:39

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Wenn man es noch genauer haben möchte, dann muss man auch noch die Modellvariante berücksichtigen
Code:
Marke
- ID
- Bezeichnung

Modell
- ID
- Marke_ID
- Bezeichnung

Variante
- ID
- Modell_ID
- Bezeichnung
Für die Auswahl des entsprechenden Modells (z.B. in einer ComboBox/ListBox) nimmt man dann folgende Abfrage
SQL-Code:
  SELECT Variante.ID AS ID,
         CONCAT( Marke.Bezeichnung, ' - ', Modell.Bezeichnung, ' (', Variante.Bezeichnung, ')' ) AS Bezeichnung
    FROM Variante
    JOIN Modell ON Variante.Modell_ID = Modell.ID
    JOIN Marke ON Modell.Marke_ID = Marke.ID
ORDER BY Marke.Bezeichnung, Modell.Bezeichnung, Variante.Bezeichnung
Will man für Marke, Modell, Variante jeweils eine ComboBox/ListBox haben, so sehen die Abfragen wie folgt aus (Master-Detail)
Marke:
SQL-Code:
  SELECT ID, Bezeichnung
    FROM Marke
ORDER BY Bezeichnung
Modell (Detail von Marke):
SQL-Code:
  SELECT ID, Bezeichnung
    FROM Modell
   WHERE Marke_ID = :ID
ORDER BY Bezeichnung
Variante (Detail von Modell):
SQL-Code:
  SELECT ID, Bezeichnung
    FROM Variante
   WHERE Modell_ID = :ID
ORDER BY Bezeichnung
Gespeichert wird aber immer nur die Varianten-ID, die anderen (Marke,Modell) sind nur für die Eingrenzung von Modell und Variante

AlexII 5. Apr 2013 16:05

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hab jetzt folgendes Diagramm, siehe Anhang...

Was passiert wenn ich kein Modell oder Variante eingebe, dann kracht doch die ganze Beziehung zusammen, oder? Ich gebe die Marke an und fertig, wie kommt die Beziehung zustande wenn dazwischen Modell oder Variante fehlt? :|

p80286 5. Apr 2013 16:18

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Wenn Du nur die Marke angibst, z.B. 'Audi' dann erhälst Du als Ergebnis alle Audi-Modelle in allen Farben, Motorvarianten, ......

Gruß
K-H

DeddyH 5. Apr 2013 16:18

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Wo ist denn die Beziehung zwischen Fahrzeug und Variante?

AlexII 5. Apr 2013 16:20

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Zitat:

Zitat von DeddyH (Beitrag 1210172)
Wo ist denn die Beziehung zwischen Fahrzeug und Variante?

Siehe mein Screenshot

p80286 5. Apr 2013 16:24

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Zitat:

Zitat von AlexII (Beitrag 1210173)
Zitat:

Zitat von DeddyH (Beitrag 1210172)
Wo ist denn die Beziehung zwischen Fahrzeug und Variante?

Siehe mein Screenshot

Da ist aber nichts! der Fremdschlüssel für die Verbindung Fahrzeug => Variante fehlt.

Gruß
K-H

AlexII 5. Apr 2013 16:27

AW: DB Modell für Fahrzeug, Marke, Modell?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Sorry, hab' übersehen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz