Hallo,
ich bin neu hier, so habt Nachsicht, wenn diese Frage schon gestellt wurde. Jedoch fällt mir auch kein passender Suchbegriff ein. Ich habe folgendes Problem:
Ich habe eine Tabelle mit zwei Spalten (vereinfacht). In Spalte a sind viele Schlüssel (zeigen auf andere Tabellenzeilen) und in Spalte b ebenfalls. Nun kommen sowohl in Spalte a, als auch Spalte b beinahe alle Werte mehrfach vor. Beispiel:
a b
17 3
15 4
17 5
17 6
15 3 ...
Ich möchte jetzt eine Abfrage haben, die mir zu einem vorgegebenem Schlüssel aus Spalte a sämtliche Schlüssel aus Spalte b liefert, also:
SELECT b WHERE a=17;
Als nächstes möchte ich nun wissen, wie häufig die gefundenen Schlüssel aus Spalte B überhaupt sonst noch vorkommen. Also:
xx = Suchergebnis aus Abfrage 1
SELECT COUNT(*) WHERE b = 'xx' GROUP BY b;
Bei mehreren Suchergebnissen aus Anfrage 1 muss ich die 2. Anfrage jedoch recht häufig stellen. Ok, ich könnte es mittels OR auf eine weitere Suchabfrage beschränken, doch ist es recht unsauber, da ich nachher das Array wieder auseinanderfrickeln müsste.
Gibt es eine elegantere Lösung als Befehl, der mir zum einen das Suchergebnis aus Abfrage 1 liefert, jedoch zusätzlich eine weitere Spalte in der die Häufigkeit des Vorkommens des Schlüssels in Spalte b liefert?
Zur Erklärung: Es handelt sich bei Spalte a um Film-Identifikationsnummern und bei Spalte b um Personennummern. Ich möchte also zum einen eine Suchabfrage, die mir sämtliche Personen zu einem Film liefert, jedoch zusätzlich auch angibt, in wievielen Filmen diese Person insgesamt mitgewirkt hat.
Vielen Dank für Eure Mühe schon einmal im voraus,
Marco
ich bin neu hier, so habt Nachsicht, wenn diese Frage schon gestellt wurde. Jedoch fällt mir auch kein passender Suchbegriff ein. Ich habe folgendes Problem:
Ich habe eine Tabelle mit zwei Spalten (vereinfacht). In Spalte a sind viele Schlüssel (zeigen auf andere Tabellenzeilen) und in Spalte b ebenfalls. Nun kommen sowohl in Spalte a, als auch Spalte b beinahe alle Werte mehrfach vor. Beispiel:
a b
17 3
15 4
17 5
17 6
15 3 ...
Ich möchte jetzt eine Abfrage haben, die mir zu einem vorgegebenem Schlüssel aus Spalte a sämtliche Schlüssel aus Spalte b liefert, also:
SELECT b WHERE a=17;
Als nächstes möchte ich nun wissen, wie häufig die gefundenen Schlüssel aus Spalte B überhaupt sonst noch vorkommen. Also:
xx = Suchergebnis aus Abfrage 1
SELECT COUNT(*) WHERE b = 'xx' GROUP BY b;
Bei mehreren Suchergebnissen aus Anfrage 1 muss ich die 2. Anfrage jedoch recht häufig stellen. Ok, ich könnte es mittels OR auf eine weitere Suchabfrage beschränken, doch ist es recht unsauber, da ich nachher das Array wieder auseinanderfrickeln müsste.
Gibt es eine elegantere Lösung als Befehl, der mir zum einen das Suchergebnis aus Abfrage 1 liefert, jedoch zusätzlich eine weitere Spalte in der die Häufigkeit des Vorkommens des Schlüssels in Spalte b liefert?
Zur Erklärung: Es handelt sich bei Spalte a um Film-Identifikationsnummern und bei Spalte b um Personennummern. Ich möchte also zum einen eine Suchabfrage, die mir sämtliche Personen zu einem Film liefert, jedoch zusätzlich auch angibt, in wievielen Filmen diese Person insgesamt mitgewirkt hat.
Vielen Dank für Eure Mühe schon einmal im voraus,
Marco
Kommentar