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

SQL Befehl für Daten aus Zwischenspalte (N-M-Tabelle)

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von aloha, 11 Januar 2013.

  1. aloha

    aloha Neuer Benutzer

    Hi Community,

    habe folgendes Problem:
    ich habe eine ID (ID_Grafikkarte = 1) aus Tabelle A gegeben und möchte nun aus einer Zwischentabelle B die Anzahl und mithilfe des Foreign Keys aus Tabelle C den Typ herausfinden.

    Aufbau der Tabellen:
    anschluss enthält
    Code:
    ID_Anschluss        Typ
    1                    DVI
    2                    HDM
    grafikkarte_hat_anschluss enthält Foreign Keys aus anschluss und Grafikkarte sowie das Attribut Anzahl
    Code:
    ID_Grafikkarte ID_Anschluss Anzahl
    1                2            2
    2                2            4
    Habe das jetzt so gemacht:

    Code:
    select o1.Typ, o2.Anzahl
    from anschluss as o1, grafikkarte_hat_anschluss as o2
    where o1.ID_Anschluss
    IN
      ( select ID_Anschluss
      from grafikkarte_hat_anschluss
      where ID_Grafikkarte = 1)
    and
    o2.ID_Anschluss
    IN
      ( select ID_Anschluss
      from grafikkarte_hat_anschluss
      where ID_Grafikkarte = 1)
    > Ergebnis
    Code:
    Typ      Anzahl
     
    HDM      2
    Das funktioniert zwar, aber ich kann mir nicht vorstellen, das ich dafür 2 innere Selects benötige - nur steh ich grad total auf dem Schlauch.

    Danke im Vorraus für Tips

    Edit: Die Infos waren zwar da, aber wenn es übersichtlicher gewünscht wird (wobei ich keine sql Code Tags gefunden habe)
     
  2. akretschmer

    akretschmer Datenbank-Guru


    Zuerst einmal: bitte verwende Code-Tags etc., um das lesbar zu gestalten, siehe dazu auch: http://datenbankforum.com/help/bb-codes

    Die Chance, Dir zu helfen, wäre außerdem deulich größer, wenn Du uns den Aufbau Deiner Tabellen zeigen würdest. Dazu vielleicht je 2-3 Datensätzen aus den Tabellen und das Wunsch-Resultat.


    Andreas
     
  3. ukulele

    ukulele Datenbank-Guru

    Das was du gemacht hast sieht "sehr merkwürdig" aus, oder ich verstehe einfach nicht was du erreichen willst. :confused:

    Das hier sollte das selbe Ergebnis liefern:
    Code:
    SELECT    o1.Typ,
            o2.Anzahl
    FROM    anschluss o1,
            grafikkarte_hat_anschluss o2
    WHERE    o1.ID_Anschluss = o2.ID_Anschluss
    AND        o2.ID_Grafikkarte = 1
     
  4. aloha

    aloha Neuer Benutzer

    Ehm...das ich so sehr auf dem Schlauch stehe hatte ich jetzt nicht erwartet xD..
    Danke!
     
  5. akretschmer

    akretschmer Datenbank-Guru

    Vielleicht noch als kleiner Tipp: JOINs expliziet als solche zu schreiben erhöht die Lesbarkeit, und man 'gewöhnt' sich auch besser dran ;-)

    Andreas
     
  6. ukulele

    ukulele Datenbank-Guru

    Ich verwende nur JOIN wenn es notwendig ist weil ich es so leserlicher finde, das ist aber Gewöhnungssache.
     
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