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

SQL Abfrage über mehrere Tabellen

Dieses Thema im Forum "Microsoft Access" wurde erstellt von redom, 19 Dezember 2019.

  1. redom

    redom Neuer Benutzer

    Hallo,

    mein Problem ist das Folgende: Ich habe eine Access-DB mit mehreren Tabellen, wobei eine die Haupttabelle ist, welche Projekte enthält, und eine der Anderen ist ein Personenverzeichnis, welches aus ID und Namen der Person besteht. Jetzt werden für einen Projektdatensatz mehrere Personen benötigt (Leiter- und Stellvertreter), die jeweils über ihre ID als Fremdschlüssel in den Datensatz eingehen. Ich möchte aber, dass diese in einer Abfrage über die Projektdatenbank namentlich auftauchen, und nicht nur über den Fremdschlüssel. Wie ist das möglich?

    Ich habe in der Projektdatenbank noch eine weitere Spalte, in der pro Projekt die Leiter und Stellvertreter in einem Textfeld eingetragen wurden. Diese sollte eigentlich durch das oben beschriebene System ersetzt werden, so dass man die Personen im Formular über einen Reiter einfügen kann. Sollte es dafür aber keine Lösung geben, kann man dann vielleicht in das Textfeld einen Standardwert eintragen, der dem Personennamen der zur Personen-ID gehört, welche in dem Reiterfeld eingetragen wird, entspricht? Dann könnte ich in der Abfrage dieses Anzeigen lassen. Es wäre zwar keine saubere Lösung, aber würde für unsere Bedürfnisse ausreichen.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Mit einem JOIN. Kommst Du damit weiter? Es gibt Tonnen von Doku dazu.
     
  3. redom

    redom Neuer Benutzer

    Leider nicht, ich habe in die Richtung schon so einiges durchprobiert, aber nix hat funktioniert. Ich bin leider auch nicht sehr bewandert in SQL, ich hatte vor Jahren mal einen Kurs an der Uni, da war aber auch nur alles theoretisch. Durch die Datenbank hier habe ich mich bis jetzt größtenteils mit der GUI von Access durchgekämpft.

    Ich bin mir nicht sicher, wie ich das ganze staffeln soll, bis jetzt ist es wie folgt, aber da ist ja ein Wiederspruch drin...

    Select Projekte.[ID], Projekte.[Projektbezeichnung], Personenverzeichnis.Person, Personenverzeichnis.Person
    FROM Personenverzeichnis INNER JOIN Projekte ON
    (Personenverzeichnis.ID =Projekte.[Leiter]) AND (Personenverzeichnis.ID = Projekte.[Stellvertreter]);
     
  4. akretschmer

    akretschmer Datenbank-Guru

    du must 2 mal joinen, in etwa so:

    select ... from projekte p left join personenverzeichnis l on p.leiter=l.id left join personenverzeichnis s on p.stellvertreter=s.id

    2 mal joinen, der Tabelle personenverzeichnis dabei unterschiedliche Aliase geben (l für Leiter und s für Stellvertreter z.B.) und diese Joins dann auf Projekte.leiter bzw. Projekte.Stellvertreter
     
  5. redom

    redom Neuer Benutzer

    Vielen Dank erstmal! Ich bekomme noch einen Syntaxfehler, den ich mir noch genauer anschauen muss, aber um den werde ich mich später kümmern müssen.
     
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