Announcement

Collapse
No announcement yet.

3er-join oracle sql worksheet

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

  • 3er-join oracle sql worksheet

    hey ho leutz,

    ich bekomme den 3er-join der in der letzten zeile steht nicht richtig hin, kann mir jemand bitte helfen?
    es gibt keine vorgaben, es muss nur einfach irgendwie gemacht werden.

    /*
    drop table Foerderprogrammteilnahme;
    drop table Krankheitsfaelle;
    drop table ArtFoerderprogramme;
    drop table Krankheiten;
    drop table Kinder;
    */


    create table Kinder (KID number(10) not null, KName varchar2(20) not
    null, KVorname varchar2(20) not null, Strasse varchar2(50), PLZ
    number(5), Ort varchar2(20), Eintrittsdatum date,
    Austrittsdatum date, isGeschwisterkind number(1), primary key(KID));

    create table Krankheiten(KrID number(10) not null, Bezeichnung
    varchar2(20), Behandlung varchar2(20),
    primary key (KrID));

    create table Krankheitsfaelle(KrID number(10) not null, KID number(10)
    not null, primary key(KrID, KID),
    foreign key(KrID) references Krankheiten, foreign key(KID) references Kinder);

    create table ArtFoerderprogramme(FID number(10) not null, Bezeichnung
    varchar2(50), Anfangsdatum date, Enddatum date,
    primary key(FID));

    create table Foerderprogrammteilnahme(FID number(10) not null, KID
    number(10) not null, primary key(FID, KID),
    foreign key(FID) references ArtFoerderprogramme, foreign key(KID)
    references Kinder);


    insert into Kinder values (1, 'Mustermann', 'Maxo', 'Musterweg 1',
    11111, 'Musterstadt', '01-jan-2000', '20-jan-2003', 1);
    insert into Kinder values (2, 'Musterfrau', 'Maxim', 'Musterstrasse
    2', 11411, 'Musterhausen', '01-jan-2001', '20-jun-2004', 0);
    insert into Kinder values (3, 'Muster', 'Andrea', 'Muster 12', 11211,
    'Musterdorf', '01-jul-2000', '20-jan-2003', 0);

    insert into Krankheiten values (1, 'Kopfschmerzen', 'Aspirin geben');
    insert into Krankheiten values (2, 'Gliederschmerzen', 'Paracetamol geben');
    insert into Krankheiten values (3, 'Husten', 'Bronchikum geben');

    insert into ArtFoerderprogramme values (1, 'Sprachfoerderung',
    '01-feb-2003', '01-nov-2003');
    insert into ArtFoerderprogramme values (2, 'Feinmotorik',
    '01-feb-2003', '01-nov-2003');
    insert into ArtFoerderprogramme values (3, 'ADS', '01-apr-2003', '01-nov-2003');

    insert into Foerderprogrammteilnahme values (1, 1);
    insert into Foerderprogrammteilnahme values (1, 2);
    insert into Foerderprogrammteilnahme values (3, 1);

    insert into Krankheitsfaelle values (1, 1);
    insert into Krankheitsfaelle values (2, 2);
    insert into Krankheitsfaelle values (3, 3);


    Select * from Kinder where isGeschwisterkind = 1;
    Select * from Krankheiten where Behandlung like '%geben';


    update Kinder set isGeschwisterkind = 0 where KID = 1;
    update Krankheiten set Behandlung = 'Bier geben' where KrID = 1;


    Select K.KID, F.FID from Kinder K, ArtFoerderprogramme F where K.KID = F.FID;
    Select K.KID, F.FID from Kinder K, ArtFoerderprogramme F, Foerderprogrammteilnahme E where K.KID = F.FID; <------- bisherige lösung

  • #2
    Originally posted by RaymanRockt View Post
    ich bekomme den 3er-join der in der letzten zeile steht nicht richtig hin, kann mir jemand bitte helfen?
    Kommt darauf an: Was willst du den haben?
    Ein "3er-join" ist doch ein wenig ungenau.

    Gruss

    Comment


    • #3
      es gibt keine vorgaben, einfach einen join über drei relationen
      ich könnte ja die tabelle, kinder, artfoerderungsprogramm und krankheitsfaelle nehmen und dann mir ausgeben lassen welches kind in foerderpro und in krankheits vorkommt oder?
      Zuletzt editiert von RaymanRockt; 26.06.2013, 15:28.

      Comment


      • #4
        Wenn die Aufgabe tatsächlich lautet: "Irgendeinen Join über 3 Tabellen" ist deine Lösung richtig, da gibt es nichts zu bemängeln.
        Garbage in -> garbage out!

        Gruss

        Comment


        • #5
          Du hast deine Foerderprogrammteilnahme E Tabelle nicht im Join ?


          Gruss

          Comment


          • #6
            Originally posted by dbwizard View Post
            Du hast deine Foerderprogrammteilnahme E Tabelle nicht im Join ?
            Doch, nur halt als "CROSS JOIN". Da weitere Angaben fehlen kann niemand sagen ob es falsch oder richtig ist.

            Grus

            Comment

            Working...
            X