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

Postgresql Aufgabe - Benötige Hilfe (Left Joins)

Dieses Thema im Forum "PostgreSQL" wurde erstellt von moyoeakadb, 12 Mai 2020.

  1. moyoeakadb

    moyoeakadb Neuer Benutzer

    Schönen Mittag Zusammen,

    ich stecke in einem Loch. Nach vielen Fehlversuchen habe ich entschlossen, mir Hilfe zu holen. Vielleicht habt ihr eine Lösung parat. Die Aufgabe, plus die Tabellen und die Musterlösung hefte ich euch an.

    A1 -> Tabellen
    A2 -> Aufgabe mit Tipp
    A3 -> Musterlösung

    Bedanke mich schon mal für Hilfe, bin gespannt auf eure Antworten.
    Moyoe
     

    Anhänge:

    • a1.PNG
      a1.PNG
      Dateigröße:
      23,3 KB
      Aufrufe:
      7
    • a2.PNG
      a2.PNG
      Dateigröße:
      18,3 KB
      Aufrufe:
      6
    • a3.PNG
      a3.PNG
      Dateigröße:
      10,5 KB
      Aufrufe:
      6
  2. akretschmer

    akretschmer Datenbank-Guru

    was hast denn bisher versucht?
     
  3. moyoeakadb

    moyoeakadb Neuer Benutzer

    Gerne stelle ich dir hier mal Codes von mir rein :)

    Unter anderem nämlich...

    SELECT
    p.projnr,
    a.abtnr,
    pe.vname,
    pe.nname
    FROM
    projekt p
    LEFT JOIN abteilung a ON p.abtnr = a.abtnr
    LEFT JOIN personal pe ON p.projnr = pe.projnr
    ORDER BY
    p.projnr asc

    oder

    SELECT
    p.projnr,
    a.abtnr,
    pe.vname,
    pe.nname
    FROM
    projekt p
    LEFT JOIN abteilung a ON p.abtnr = a.abtnr
    LEFT JOIN personal pe ON a.chefnr = pe.persnr
    ORDER BY
    p.projnr asc

    und

    SELECT
    p.projnr,
    a.abtnr,
    pe.vname,
    pe.nname
    FROM
    projekt p
    LEFT JOIN abteilung a ON p.abtnr = a.abtnr
    LEFT JOIN personal pe ON p.projnr = pe.projnr
    GROUP BY
    p.projnr,a.abtnr,pe.vname,pe.nname
    ORDER BY
    p.projnr asc

    Ich weiß nicht, ob ich mich absolut blöd anstelle, oder einfach nur auf dem Schlauch stehe.
     
  4. akretschmer

    akretschmer Datenbank-Guru

    welche liefert denn korrekte Antworten? ;-)

    Andreas
     
  5. akretschmer

    akretschmer Datenbank-Guru

    kleiner Tipp:

    VON: Tabelle, die einen Foreign Key enthält, von hier aus suche ich etwas
    NACH: Tabelle, von der ich was holen will, PK = Primary Key, NACH wie Nachschlage-Tabelle

    SELECT ... VON left join NACH on VON.FK = NACH.PK
     
  6. moyoeakadb

    moyoeakadb Neuer Benutzer

    Diese hier zeigt mir malle Projekte mit ihren Abteilungen, jedoch auch Vorname und Nachname der Person, ob sie chef ist oder nicht:

    SELECT
    p.projnr,
    a.abtnr,
    pe.vname,
    pe.nname
    FROM
    projekt p
    LEFT JOIN abteilung a ON p.abtnr = a.abtnr
    LEFT JOIN personal pe ON a.chefnr = pe.persnr
    ORDER BY
    p.projnr asc

    Diese hier zeigt mir eigentlich das "korrekte" Ergebnis, sie zeigt NUR die Ergebnisse, die zutreffen (WHERE)

    SELECT
    p.projnr,
    a.abtnr,
    pe.vname,
    pe.nname
    FROM
    projekt p
    LEFT JOIN abteilung a ON p.abtnr = a.abtnr
    LEFT JOIN personal pe ON p.projnr = pe.projnr
    WHERE
    a.chefnr = pe.persnr
    ORDER BY
    p.projnr asc
     
  7. moyoeakadb

    moyoeakadb Neuer Benutzer

    SELECT
    p.projnr,
    a.abtnr,
    pe.vname,
    pe.nname
    FROM
    projekt p
    LEFT JOIN abteilung a ON p.abtnr = a.abtnr
    LEFT JOIN personal pe ON p.projnr = pe.projnr and a.chefnr = pe.persnr
    ORDER BY
    p.projnr asc

    Wusste nicht, dass bei Joins eine Art "if" abfrage möglich ist, das ist ja mal mega klasse!
    Vielen Dank
     
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