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

aloha

Neuer Benutzer
Beiträge
2
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)
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.423
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


Zuerst einmal: bitte verwende Code-Tags etc., um das lesbar zu gestalten, siehe dazu auch: https://www.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
 

ukulele

Datenbank-Guru
Beiträge
4.582
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
 

aloha

Neuer Benutzer
Beiträge
2
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

Ehm...das ich so sehr auf dem Schlauch stehe hatte ich jetzt nicht erwartet xD..
Danke!
 
Werbung:
Oben