Announcement

Collapse
No announcement yet.

Vergleich mit NOT IN

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Vergleich mit NOT IN

    Hallo,

    ich arbeite an einer Abfrage, die mir diejenigen Datensätze einer Tabelle liefern soll, welche nicht in der Menge der Unterabfrage auftauchen. Ich gehe so vor:
    PHP Code:
    SELECT Name FROM Tabelle1 WHERE Tabelle1.Name NOT IN (SELECT Tabelle2.Name FROM Tabelle2,Tabelle3 WHERE Tabelle2.Name Tabelle3.Name
    Die Unterabfrage liefert die gesamte Abfrage als Ergebnis die richtige Menge der gleichen Name der Tabellen 2 und 3. Leider wird von der gesamten Abfrage ebenfalls die gesamte Menge der Namen der Tabelle1 ausgegeben, obwohl in dieser Tabelle nur ein Name mit denen der Tabellen 2 und 3 übereinstimmt. Was mache ich hier falsch?

    Gruß Sven

  • #2
    Hallo Sven,

    willst Du jetzt die Namen aus Tabelle1 die in der Unterabfrage enthalten sind, oder nicht enthalten sind? Wenn nur ein Name der Tabelle1 mit der Unterabfrage übereinstimmt, liefert Dir Deine Abfrage alle Namen aus Tabelle1 bis auf diesen. Wenn Du das NOT weglässt liefert Sie Dir diesen einen Namen.

    Gruß frauwue
    docendo discimus

    Comment


    • #3
      Tabelle1 enthält in der Spalte Name die Einträge: Klaus und Horst, die Tabelle2 in Name: Klaus und Paul, die Tabelle3 in Name: Klaus, Paul und Ernst. Die Unterabfrage liefert mir als Menge der gleichen Namen: Klaus und Paul. In der ganzen Abfrage möchte ich jetzt Horst als Ergebnis geliefert bekommen, also den Namen, der nicht in der Unterabfrage als Ergebnis vorkommt.

      Gruß Sven

      Comment


      • #4
        Hallo Sven,

        dann müsste Deine Abfrage eigentlich richtig sein.
        Was kommt denn genau raus?
        Schreib mal vor das erste Name noch Tabelle1.
        Hast Du denn denselben Datentyp in Tabelle1 wie in den anderen,
        oder sind irgendwo Blanks drin?


        Gruß frauwue
        Zuletzt editiert von frauwue; 10.04.2008, 14:25.
        docendo discimus

        Comment


        • #5
          Die Abfrage ist völlig richtig. Ich habe dieses Beispiel selbst in eine Datenbank eingegeben und gemerkt das hier das richtige herauskommt. Bei nochmaligen Vergleichen mit meiner eigentlichen Datenbank ist mir dann irgendwann aufgefallen, dass ich einen Spaltennamen versehentlich verwechselt habe. Manchmal muss man nur mal was anderes machen um den kleinen Fehler zu finden.

          Vielen Dank
          Sven

          Comment

          Working...
          X