Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Zwei Tabellen -> mehrfache Zuordnung des Primärschlüssels

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von exzel, 17 August 2012.

  1. exzel

    exzel Datenbank-Guru

    Hallo zusammen,

    ich habe zwei Tabellen. In einer werden die Namen der Kunden
    festgehalten mit der jeweiligen Kunden-ID. In einer zweiten
    Tabelle sind die zugehörigen Verträge der Kunden. Zu einem
    Vertrag gibt es mehrere Personen wie den Vertragsinhaber,
    Beitragszahler, versicherte Person.

    Tabelle: Personendaten

    HTML:
    id_vn     name     vorname
    73     Meier     Franziska
    71     Meier     Franz
    76     Meier     Hans
    75     Meier     Test
    77     Johann     Siegfried
    78     Johann     Sepp
    79     Huber     Andreas
    

    Tabelle: Vertraege (nicht vollständig)

    HTML:
    id_vertrag    id_vn    id_vp1    id_vp2
    1            10    10    10
    2            13    13    13
    3            15    16    16
    6              0    0    0
    9            18    18    18
    10            0    0    0
    11              0    0    0
    13            18    18    18
    14            17    17    17
    Bisher hatte ich die einzelnen Schlüsseln über je eine SELECT
    Abfrage den jeweiligen Namen zugeordnet.

    Doch leider ist mir das jetzt ein Dorn im Auge. Zur weiteren
    Bearbeitung und Eingabeprüfung ist eine Abfrage besser.

    Wie kann ich die Zuordnung der Schlüsseln zu den Namen in einer
    Abfrage schaffen. Ich hatte schon Multi Joins gegoogelt, aber
    damit komme ich nicht klar.

    Gruß
     
  2. PLSQL_SQL

    PLSQL_SQL Datenbank-Guru

    Hy,

    das geht, indem du die Personendatentabelle in deinem Select öfter als einmal verwendest und entsprechend mit Tabellen-Aliase arbeitest.

    z.B.:

    Code:
     
    select v.id_vertrag
     
      from Vertraege v
              ,Personendaten vp
              ,Personendaten p1
              ,Personendaten p2
     
    where v.id_vn = vp.id_vn
    AND v.id_vp1 = p1.id_vn(+)      --left Join
    AND v.id_vp2 = p2.id_vn(+)     --left Join
     
    
    Lg
     
  3. exzel

    exzel Datenbank-Guru

    Hallo und danke für die Antwort!

    Und was bedeutet das (+) Symbol?

    Gruß
     
  4. Margit

    Margit Fleissiger Benutzer Mitarbeiter

    Das (+) ist eine andere Syntax für einen Join den manche Datenbanken so verwenden.
     
    PLSQL_SQL gefällt das.
  5. exzel

    exzel Datenbank-Guru

    Ok, danke! Wieder was gelernt!
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden