Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Verknüpfungen -> Verständnisfrage (https://www.delphipraxis.net/83962-verknuepfungen-verstaendnisfrage.html)

Dragon27 9. Jan 2007 11:57

Datenbank: MySQL • Version: 5.0 • Zugriff über: Zeos

Verknüpfungen -> Verständnisfrage
 
Hallo,

habe eine Verständnisfrage an Euch. Es geht um Verknüpfungen.

Also ich mache ein einfaches Beispiel...

Ich habe in SQL 2 Tabellen

1. Tabelle:

Name
Vorname
OrtIndex
etc.

2. Tabelle

Ort
PLZ

Jetzt haben wir in der Schule etwas von Primärschlüssel und Fremdschlüssel gelernt. Also mir ist klar dass hier
in der Tabelle1 einen Index speichern muss.... Aber wie greife ich dann über tabelle1 zu also sowohl in delphi als auch so.... es ist ja nur ein Index gespeichert!

Danke für Eure Hilfe!

DGL-luke 9. Jan 2007 12:00

Re: Verknüpfungen -> Verständnisfrage
 
Du brauchst natürlich in der 2. Tabelle auch einen Schlüssel. Der entspricht dann dem OrtIndex, und du bekommst den Ort so:

SQL-Code:
SELECT ort, plz FROM table2 WHERE OrtIndex = :gesuchterOrtIndex
"gesuchterOrtIndex" ist dann deine variable... ich bin in SQL leider noch nicht so weit, dass ich das zusammenziehen kann, man kann aber "automatisch" die Daten aus beiden Tabellen rausziehen, so dass du in einem record Name, Vorname, PLZ und Ort hast.

Jürgen Thomas 9. Jan 2007 12:18

Re: Verknüpfungen -> Verständnisfrage
 
Für einfache Fälle:
SQL-Code:
SELECT
    Name,
    Vorname,
    PLZ,
    Ort
FROM Tabelle1
JOIN Tabelle2
  ON Tabelle1.OrtIndex = Tabelle2.OrtIndex
Für Fälle, in denen die Feldnamen übereinstimmen können:
SQL-Code:
SELECT
    a.Name,
    a.Vorname,
    p.PLZ,
    p.Ort
FROM Tabelle1 a
JOIN Tabelle2 p
  ON a.OrtIndex = p.OrtIndex
Es geht auch so:
SQL-Code:
SELECT
    a.Name,
    a.Vorname,
    p.PLZ,
    p.Ort
FROM Tabelle1 a, Tabelle2 p
WHERE a.OrtIndex = p.OrtIndex
Unabdingbar ist, dass der OrtIndex in der Adressen-Tabelle auch in der PLZ-Tabelle vorhanden ist. Schon aus Gründen der Geschwindigkeit ist es wichtig, dass auf P.OrtIndex ein eindeutiger Schlüssel liegt.

Achtung: Nur die Kombination PLZ + Ort ist eindeutig (genauer: das Feld ALORT der Post-Datenbank). Zu vielen PLZ gibt es mehrere Orte; es gibt viele Orte mit mehreren PLZ.

Gruß Jürgen


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 Uhr.

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