🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Tabelle verweist auf sich selbst

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Dami
Beiträge: 24
Registriert: Di 20. Jan 2015, 09:33

Tabelle verweist auf sich selbst

Beitrag von Dami » Mi 28. Jan 2015, 22:27

Ich habe eine Personentabelle, in der ebenfalls Kontaktpersonen (die ID's) abgelegt werden.

TabellePerson:
ID
...BlaBla
Telefon
eMail
ID_KontaktPerson1
ID_KontaktPerson2

Die ID_KontaktPerson... ist die ID der Person in TabellePerson (also auf sich selbst).
In einem Unterformular möchte ich ein paar Daten der KontaktPerson Anzeigen
(eMail, Telefon).
Hier Komme ich nicht weiter :?:

Eine Verknüpfung der ID <-> ID_KontaktPerson funktioniert nicht
Quasi ein:
SELECT "Telefon", "Mail" FROM "Person"
WHERE "ID" = (SELECT "ID_KontaktPerson" FROM "Person")

Es müsste doch funktionieren, nur wie ?

Freischreiber
* LO-Experte *
Beiträge: 834
Registriert: Fr 28. Mär 2014, 10:41

Re: Tabelle verweist auf sich selbst

Beitrag von Freischreiber » Do 29. Jan 2015, 09:24

Hallo Dami,

wenn ich den Begriff "relationale Datenbank" richtig verstehe, besteht sie aus Tabellen. Jede Zeile einer Tabelle ist ein "Tupel" oder Datensatz. https://de.wikipedia.org/wiki/Tupel_%28Informatik%29

Jedes Tupel beschreibt eine bestimmte Relation verschiedener Grundmengen: Die Person mit der ID 1 hat genau die Telefonnummer 12345 und genau die Mailadresse abc.

Die Beziehung zu einer anderen Person ist keine Eigenschaft einer Person.

Deine Personen sind wahrscheinlich aus einem bestimmten Grund mit anderen Personen verbunden, etwa für ein Projekt.

Du kannst also z. B. eine zweite Tabelle "t-Projekte" einführen, Spalte 1: Projektnummer, Spalte 2: Mitglied-ID. Wenn drei Personen an demselben Projekt arbeiten, hätte diese Tabelle dann drei Zeilen mit derselben Projektnummer.

Also besser: zusätzlich eine dritte Tabelle, als Zwischentabelle, die speichert, welche Personen und welche Projekte zusammengehören.
Ein Beispiel findest du hier: http://www.libreoffice-forum.de/viewtop ... 10&t=14414

Gruß
Freischreiber
Freischreiber nutzt seit 1/2025 LibreOffice Version 7.2.7.2 unter Windows 11 und SplitDB mit HSQL 2.7.4.
Lesenswert: https://wiki.documentfoundation.org/ReleasePlan/de

pmoegenb

Re: Tabelle verweist auf sich selbst

Beitrag von pmoegenb » Do 29. Jan 2015, 11:04

Dami hat geschrieben:SELECT "Telefon", "Mail" FROM "Person"
WHERE "ID" = (SELECT "ID_KontaktPerson" FROM "Person")
Wenn Deine Auflistung der Feldnamen richtig ist, hast Du kein Feld mit dem Namen ID_KontaktPerson sondern ID_KontaktPerson1 und ID_KontaktPerson2. Außerdem fehlt die Definition ob die Felder der Unterabfrage selektiert werden sollen.

Probiere es mal mit:

Code: Alles auswählen

SELECT "b.Telefon" AS Telefon, "b.Mail" AS Mail FROM "Person" a
LEFT JOIN "Person" b
ON "a.ID"  = "b.ID_KontaktPerson1"
UNION
SELECT "b.Telefon" AS Telefon, "b.Mail" AS Mail FROM "Person" a
LEFT JOIN "Person" b
ON "a.ID"  = "b.ID_KontaktPerson2"


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten