Pergunta

Eu tenho uma tabela com cerca de 15000 entradas. Eu tenho uma segunda tabela B com 7900 entradas com um campo comum com a tabela A.

Eu preciso extrair em uma terceira TableC temporária todas as entradas da tabela A, exceto aqueles que também aparecem na tabela B. Por mais simples que possa parecer, não reembolsaram i encontrou uma maneira de fazê-lo. O mais próximo que eu obtive era esta:

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

Esta SQL apenas seleciona tudo na tableA, até mesmo entradas que estão no tableB.

Todas as idéias para onde estou indo errado?

Foi útil?

Solução

E se você tentar isso?

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

Ou você pode tentar o suplente EXISTE sintaxe

INSERT INTO tableC 
SELECT * 
FROM tableA 
WHERE NOT EXISTS (SELECT * FROM tableB WHERE tableB.field = tableA.field)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top