Frage zu SQL Statements



  • Moin moin,

    ich habe ein Problem bei einem SQL Statement:

    In unserer Datenbank haben wir verschiedene Tabellen, in der Tabelle person sind die namen angelegt (name) und in der Tabelle musiker die gruppe

    lässt man sich per

    SELECT gruppe FROM musiker
    

    ausgeben, kommt natürlich der Gruppenname heraus. Ich möchte jetzt aber alle namen von allen gruppenmitgliedern ausgeben lassen... ich habe das über

    SELECT DISTINCT name, gruppe
    FROM person NATURAL JOIN musiker NATURAL JOIN medium
    WHERE name = 'Angus Young' AND medium_art = 'CD' AND 2 <= (SELECT COUNT(person_id) FROM person);
    

    versucht, aber ich kriegs einfach nicht gebacken, dass er mir die anderen Gruppenmitglieder ausgibt... Kann mir da jmd helfen? 😉



  • Du erwartest nicht ernsthaft, auch andere Namen zu sehen, wenn du das schreibst:

    SQLNeuling schrieb:

    WHERE name = 'Angus Young'

    SQLNeuling schrieb:

    Ich möchte jetzt aber alle namen von allen gruppenmitgliedern ausgeben lassen...

    Nein, du möchstest (vermutlich) die Namen aller Personen, die mit Angus Young in einer gemeinsamen Gruppe sind. Wenn du deine Absicht schon auf deutsch nicht ordentlich formulieren kannst, wird das nix mit SQL 😉



  • Du verwendest in deinem Query doch schon einen Subselect.

    Hint: Wenn du einen Query für "die Band, in der Angus Young ist" hast, kannst du einfach alle Musiker selektieren, die irgendeine Veröffentlichung mit Angus Youngs Gruppe haben. 🙂



  • Nö, hab eig nicht erwartet die anderen Namen zu er halten, wollte nur irgendwas dahinschreiben, bevor dann ein "mach doch mal selber was"-Text kommt.

    Woher nimmst du das Recht, über mich zu urteilen MFK? Darum *hasse* ich solche Foren - stellt man eine Frage kommen erst einmal 5 Antworten, wie *dumm* der Themensteller doch ist -.-

    Naja, auch wenn ich mich etwas aufrege über dich... trotzdem danke für die Hinweise.

    Und auch danke an nman, das ist eigentlich genau der Befehl den ich suche, das wusste ich allerdings schon davor.

    Allerdings *kenne* ich diesen Befehl in SQL eben nicht, bzw. weiß nicht, wie ich ihn richtig anwenden würde. Darum habe ich hier gefragt 😉



  • Immer mit der Ruhe; so unfreundlich war MFKs Antwort auch wieder nicht.

    Ich weiß einfach nicht genau, wie dein Gruppen-Schema aussieht, insofern kann ich dir dazu nicht viel sagen.

    Aber wenn zB. die Tabelle band_musiker m gruppen_ids mit n musiker_ids verbinden würde, könntest du zB. sowas in der Art machen:

    select musiker_name from band_musiker natural join musiker
    where gruppen_id in
      (select gruppen_id from band_musiker natural join musiker
       where musiker_name = 'Angus Young');
    

    Ist jetzt natürlich nicht getestet und ich habe keine Ahnung von eurem DB-Schema, aber damit kannst du dir das dann schon zurechtbasteln.


Anmelden zum Antworten