Announcement

Collapse
No announcement yet.

Duplikate

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

  • Duplikate

    Hi,
    folgendes Problem:
    Ich habe zwei Tabellen mit Namen gefüllt, die eine Tabelle umfasst aber nur eine Teilmenge der Namen. Durch welchen SQL-Befehl kann ich nun herausfinden, welche Namen nicht in beiden Tabellen vorhanden sind?

    Vielen Dank im Voraus

  • #2
    SELECT DISTINCT Tabelle1.Name, Tabelle2.Name
    FROM Tabelle1 LEFT JOIN Tabelle2 ON Tabelle1.Name = Tabelle2.Name
    WHERE Tabelle2.Name IS NULL

    (hoffentlich funktionerts, habs aus dem stehgreif erstellt

    Comment


    • #3
      Hallo,

      ich glaube nicht, das die Abfrage das gewünschte Ergebnis liefert. Wenn Tabelle2 die Teilmenge von Tabelle1 ist, dann wäre folgendes besser:
      SELECT DISTINCT Tabelle1.Name FROM Tabelle1 where Tabelle1.Name not in (SELECT DISTINCT Tabelle2.Name FROM Tabelle2)

      Gruß Fal
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        Die Formuierung von Bernhard mit dem left Outer join ist schon richtig und (zumindestens bei InterBase) die deutlich schnellere Variante.

        wobei er natürlich auf tabelle2.name im select verzichten kann, das sollte gemäß where Bedingung immer null sein

        Comment


        • #5
          Hallo,

          Ja Bernhard hat recht! Seine Formulierung mit dem LEFT JOIN statt LEFT OUTER JOIN hat mich irgendwie glauben lassen das er einen INNER JOIN meint ;-) und damit geht es wirklich nicht
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment

          Working...
          X