MySQL, wie die Datensätze in einer Tabelle zu entfernen, die in einer anderen Tabelle sind

StackOverflow https://stackoverflow.com/questions/1019475

  •  06-07-2019
  •  | 
  •  

Frage

Ich habe Tabelle A mit knapp 15.000 Einträgen. Ich habe eine zweite Tabelle B mit 7900 Einträgen mit einem gemeinsamen Feld mit Tabelle A

muß ich in eine dritte temporäre TableC extrahieren alle Einträge aus der Tabelle A, außer denen, die auch in Tabelle B erscheinen einfach, wie es klingen mag, ich gefunden habe, einen Weg, es zu tun. Die nächstgelegene ich bekam, war diese:

INSERT INTO tableC
SELECT * 
FROM tableA
    INNER JOIN tableB
        ON tableA.field IS NOT tableB.field

Diese SQL wählt einfach alles in tableA, auch Einträge, die in tableB sind.

Irgendwelche Ideen, wo ich falsch gehe?

War es hilfreich?

Lösung

Was ist, wenn Sie versuchen, das?

INSERT INTO tableC 
SELECT * 
FROM tableA 
WHERE tableA.field NOT IN (SELECT tableB.field FROM tableB)

Sie können auch versuchen, die alternative VORHANDEN Syntax

INSERT INTO tableC 
SELECT * 
FROM tableA 
WHERE NOT EXISTS (SELECT * FROM tableB WHERE tableB.field = tableA.field)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top