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

Brauche bitte Hilfe bei einer Abfrage über mehrere Tabellen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Yankyy02, 21 September 2013.

  1. Yankyy02

    Yankyy02 Neuer Benutzer

    Hallo zusammen,

    wie die das Thema schon verrät bräuchte ich Hilfestellung bei einer Abfrage die mehrere Tabellen beinhaltet.
    Ich habe eine Tabelle Felgen die Felgendaten enthält und eine Tabelle Reifen die Reifendaten enthält. Beide Tabellen verweisen jeweils noch auf andere Tabellen zum Beispiel wird die Dimension eines Reifens nur in Form einer ID in der Tabelle Reifen gespeichert. Diese läßt sich ja ohne weiteres dazu JOINEN.

    Nun zum eigentlichen Problem und zwar möchte ich passend zu einem Fahrzeug die Felgen sowie Reifen auswählen. Ich hätte mir gedacht dies über eine zusätzliche Tabelle zu realisieren wo jeweils nur die FahrzeugID, FelgenID und DimensionsID abgespeichert ist und so mir alle Daten abzufragen nur leider scheitert jeglicher Versuch.

    Mittlerweile habe ich mich so verannt das ich nichtmehr weiter weis.

    Es wäre sehr nett wenn mir jemand einen Tipp geben könnte wie ich an die Sache herangehen muss/kann bzw. ob ich nicht bei der Erstellung der Tabellen nicht bereits einen Fehler begangen habe.

    Da das Thema SQL und SQL Server noch sehr neu für mich ist bitte ich um etwas Rücksicht.

    Vielen Dank schonmal.

    MfG
     
  2. akretschmer

    akretschmer Datenbank-Guru


    Was genau ist denn Dein Problem?

    Code:
    test=# create table auto (id int primary key, name text);
    CREATE TABLE
    Time: 9,101 ms
    test=*# create table felge (id int primary key, name text);CREATE TABLE
    Time: 2,932 ms
    test=*# create table reifen (id int primary key, name text);CREATE TABLE
    Time: 12,702 ms
    test=*# create table auto_felge_reifen (id_auto int references auto, id_felge int references felge, id_reifen int references reifen);
    CREATE TABLE
    Time: 3,917 ms
    test=*# insert into auto values (1,'meine');INSERT 0 1
    Time: 0,426 ms
    test=*# insert into felge values (1, 'Alu');INSERT 0 1
    Time: 0,447 ms
    test=*# insert into reifen values (1, 'sehr breit');INSERT 0 1
    Time: 0,691 ms
    test=*# insert into auto_felge_reifen values (1,1,1);
    INSERT 0 1
    Time: 1,331 ms
    test=*# select a.name, f.name, r.name from auto_felge_reifen afr left join auto a on afr.id_auto=a.id left join felge f on afr.id_felge=f.id left join reifen r on afr.id_reifen=r.id;
     name  | name |  name
    -------+------+------------
     meine | Alu  | sehr breit
    (1 row)
    
    Hab ich das halbwegs richtig erraten?
     
  3. Yankyy02

    Yankyy02 Neuer Benutzer

    Hallo und Danke für deinen Beitrag!

    Ja genau so wollt ich es haben! Hab mittlerweile noch herumprobiert und folgendes gemacht:

    SELECT rh.Hersteller, rd.Dimension, r.Profil, f.Design, fh.FelgenHersteller, fa.FelgenAbbildung
    FROM Komplettraeder k
    INNER JOIN Reifen r ON r.Dimension = k.DimensionsID
    INNER JOIN ReifenHersteller rh ON rh.HerstellerID = r.ReifenHersteller
    INNER JOIN ReifenDimensionen rd ON rd.DimensionID = r.Dimension
    INNER JOIN Felgen f ON k.FelgenID = f.FelgenID
    INNER JOIN FelgenHersteller fh ON f.FelgenHersteller = fh.HerstellerID
    INNER JOIN FelgenAbbildungen fa ON fa.FelgenID = f.Abbildung
    WHERE k.FahrzeugID = 1

    Ergebniss passt soweit nur wie ich eingangs erwähnt habe bin ich noch sehr unsicher in sachen SQL
    drum bitte ich dich noch mir zu sagen ob das so auch in Ordung geht!?

    Danke nochmals!
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Joa, scheint ja das richtige rauszukommen ...
     
    Yankyy02 gefällt das.
  5. Yankyy02

    Yankyy02 Neuer Benutzer

    Super danke für deine Unterstützung!!!

    MFG
     
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