Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL unterabfragen

Einklappen

Neue Werbung 2019

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

  • SQL unterabfragen

    Hallo!

    Ich möchte mit Mysql eine Unterabfrage durchführen lassen. Jedoch meckert MySQL an meiner Syntax herum. Leider find ich den Fehler nicht

    Code:
    SELECT Zelttyp.Zeltname, Zelttyp.ZID AS ZID 
                  FROM Zelttyp 
                  WHERE ZID IN (
                  (
                      SELECT Animation.ZID AS ZID, Animation.Dokumentname
                      FROM Animation
                  )
                  UNION (
                      SELECT Anleitung.ZID AS ZID, Anleitung.Dokumentname
                      FROM Anleitung
                   )
                )
    Beider Abfrage allein funktioniert ohne Probleme. Jedoch in der obigen Darstellung bekomme ich den den Fehler #1064, dass in Zeile 6 etwas nicht stimmen würde. Mir fällt leider kein Fehler auf

    Gruß niesel

  • #2
    Was soll den die Datenbank auch bitte machen, enemenemu spielen? Du kannst in der Form nur ein Feld selektieren.

    Kommentar


    • #3
      wieso enemenemu??

      ich vereine zwei Tabellen zu einer "virtuellen Tabelle". Dann sind z.B. die ZIDs in dieser virtuellen Tabelle doppelt, was ja auch in einem kartesischen Produkt der Tabelle vorhanden wäre . Nun soll doch nur noch ein Select durchgeführt werden wo die ZID aus dem ersten Select identisch der ZID bzw. ZIDs aus der zweiten also inneren Select-Anweisung sind. Ich habe doch eindeutig definiert, wonach MYsql gucken soll, Nach den ZID's

      Gruß niesel

      Kommentar


      • #4
        so könnte es gehen..

        Code:
        SELECT zelttyp.zeltname,
               zelttyp.zid AS zid
        FROM   zelttyp
        WHERE  zid IN ( SELECT animation.zid AS zid
                        FROM   animation
                       UNION
                       SELECT anleitung.zid AS zid
                        FROM   anleitung
                      )
        Grüße
        Thomas

        Kommentar


        • #5
          Zitat von nieselfriem Beitrag anzeigen
          Ich habe doch eindeutig definiert, wonach MYsql gucken soll, Nach den ZID's
          Hast du ebend nicht. Mysql schaut nicht auf die Namen, sondern erwartet nur eine Spalte.

          Eindeutig wäre:
          PHP-Code:
          blub IN (SELECT foo FROM table

          Kommentar


          • #6
            Zitat von nieselfriem Beitrag anzeigen
            Jedoch in der obigen Darstellung bekomme ich den den Fehler #1064, dass in Zeile 6 etwas nicht stimmen würde.
            Bitte poste in solchen Fällen den exakten Wortlaut der Fehlermeldung!

            Zitat von nieselfriem Beitrag anzeigen
            Code:
            WHERE ZID IN (
                          (
                              SELECT Animation.ZID AS ZID, Animation.Dokumentname
                              FROM Animation
            Das ist selbstverständlich Unfug.

            Du kannst nur einen Wert selektieren, der für den IN-Vergleich benutzt werden soll.
            Ausserdem dürfte zu bezweifeln sein, dass Animation.ZID und Animation.Dokumentname den selben Datentyp und die gleiche Bedeutung haben - was es noch unlogischer macht, diese Abfrage an eine Stelle zu packen, wo du ausschliesslich ZIDs vergleichen willst.
            [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

            Kommentar

            Lädt...
            X