Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Frage zu Subquerys

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Frage zu Subquerys

    Servus Leute, sagt mal was mach ich wenn ich eine Subquery in einer WHERE Klausel habe und dies mir mehr als eine Reihe (Row) auspsuckt?

  • #2
    Hallo,
    wenn deine Subquery mehrere Zeilen liefert, kannst du beispielsweise IN() benutzen: http://dev.mysql.com/doc/refman/5.0/...ubqueries.html

    Kommentar


    • #3
      und in meinem fall müsste ich das wie jetzt umformulieren?


      select Aufnahmen_Nr from musis.Aufnahmen_Stücke a join musis.musikstück_interpret m
      on a.Stück_Nr = m.Stück_Nr
      where a.Stück_Nr = (select Stück_Nr from musis.musikstück_interpret
      where Interpret_Nr = 'I18') and
      (select Stück_Nr from musis.musikstück_interpret
      where Interpret_Nr = 'I20');

      Kommentar


      • #4
        Zitat von matze
        a.Stück_Nr = (select Stück_Nr from musis.musikstück_interpret where Interpret_Nr = 'I18')
        Diesen Teil kannst du durch IN() ersetzen:
        Code:
        a.Stück_Nr IN(SELECT Stück_Nr FROM ...)
        Zitat von matze
        and (select Stück_Nr from musis.musikstück_interpret where Interpret_Nr = 'I20');
        Und bei diesem Teil hier ist mir nicht klar, was du hier überhaupt prüfen möchtest.

        Kommentar


        • #5
          also er soll mir in de subquery alle stück_nr nehmen, auf denen I18 und I20 drauf singen

          Kommentar


          • #6
            Versuche es mal mit folgender Abfrage:
            Code:
            SELECT
                a.Aufnahmen_Nr
            FROM
                Aufnahmen_St�cke AS a
            WHERE
                EXISTS(SELECT * FROM Musikst�ck_Interpret AS mi WHERE mi.St�ck_Nr = a.St�ck_Nr AND mi.Interpret_Nr = 'I18') AND
                EXISTS(SELECT * FROM Musikst�ck_Interpret AS mi WHERE mi.St�ck_Nr = a.St�ck_Nr AND mi.Interpret_Nr = 'I20')

            Kommentar


            • #7
              Hab ich jetzt ein Knick in der Optik, oder würde nicht ein einfaches where reichen?

              Code:
              SELECT Aufnahmen_Nr 
              FROM musis.Aufnahmen_Stücke a 
              JOIN musis.musikstück_interpret m
              ON a.Stück_Nr = m.Stück_Nr
              WHERE m.Interpret_Nr IN('I18','I20')

              Kommentar


              • #8
                Damit würdest du aber lediglich die Einträge selektieren, bei denen entweder der Interpret mit der Nr. I18 oder der Interpret mit der Nr. 20 vertreten ist.So wie ich die Ausgangsfrage verstanden habe, soll es sich aber um eine Gemeinschaftsaufnahme beider Interpreten handeln.

                Kommentar


                • #9
                  Also doch Knick in der Optik

                  Kommentar

                  Lädt...
                  X