Announcement

Collapse
No announcement yet.

SQL Abfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQL Abfrage

    Hallo !

    ich krieg eine SQL Abfrage irgendwie nicht hin...
    Ich habe die Tabellen "Person", "Reiter", "Reitlehrer", "Azubi".
    "Reiter", "Reitlehrer", "Azubi" sind alles Personen, haben also jeweils eine verbindung zu einem "Person" Datensatz. Nun gibt es aber auch neutrale Personen, die nicht Reiter, Reitlehrer bzw. Azubis sind.

    Ich möchte nun gerne aus der Tabelle "Person" nur alle neutralen Personen haben... wie geht das ?

    Danke schonmal im voraus,
    Nadine

    Achso, ich arbeite mit PostgreSQL.

    Hier nochmal die Tabellen (mit nur paar bzw. relevanten Spalten):

    Person
    -----------------------
    per_id int8
    per_name text
    per_vorname text


    Reiter
    -----------------------
    rei_id int8
    rei_perid int8 -- Verbindung zum Person Datensatz
    rei_art

    Azubi
    ------------------------
    azp_id int8
    azp_perid int8 -- Verbindung zum Person Datensatz
    azp_berufsbezeichnung text

    Reitlehrer
    ------------------------
    rtl_id int8
    rtl_perid int8 -- Verbindung zum Person Datensatz
    rtl_eignunglonge int4

  • #2
    [highlight="sql"]
    select
    *
    from
    person
    where
    per_id not in
    (
    select rei_perid as per_id from Reiter
    union
    select azp__perid as per_id from Azubi
    union
    select rtl_perid as per_id from Reitlehrer
    );
    [/highlight]

    Comment


    • #3
      Danke für die Hilfe !

      Aus irgendeinem Grund hat die Abfrage so aber nicht geklappt...hat immer ein leeres Ergebnis gebracht, obwohl er 3 Personen bringen müsste...
      Aber mit der Antwort hast mir trotzdem geholfen, so funktioniert die Query:

      SELECT * FROM person where
      per_id not in
      (select per_id from person, reiter where rei_perid = per_id union
      select per_id from person, reitlehrer where rtl_perid = per_id union
      select per_id from person, azubi where azp_perid = per_id)

      Comment


      • #4
        Sehr komisch. Die 3 Joins sind eigentlich überflüssig. Lass dir mal das Ergebnis des Unions anzeigen

        Comment

        Working...
        X