Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como juntar resultados de 2 tabelas com base em não condição


Você pode usar a seguinte consulta:
SELECT id, name, partNumber, Aid, Aname, Apart
FROM TableB AS t
CROSS JOIN (SELECT id AS Aid, name AS Aname, partNumber AS Apart
            FROM TableA AS a
            WHERE NOT EXISTS (SELECT 1
                              FROM TableB AS b
                              WHERE b.partNumber = a.partNumber)) AS c
ORDER BY id    

A ideia é selecionar todos os registros necessários da TableA usando um NOT EXISTS cláusula. Então CROSS JOIN a tabela derivada desta consulta com Table1 para obter todas as combinações possíveis.

Demonstração aqui