Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment joindre les résultats de 2 tables basées sur une condition non

Vous pouvez utiliser la requête suivante :

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    

L'idée est de sélectionner tous les enregistrements requis de TableA en utilisant un NOT EXISTS clause. Puis CROSS JOIN la table dérivée de cette requête avec Table1 pour obtenir toutes les combinaisons possibles.

Démo ici