Mysql
 sql >> Database >  >> RDS >> Mysql

Come unire i risultati di 2 tabelle in base alla condizione non

Puoi utilizzare la seguente query:

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'idea è di selezionare tutti i record richiesti da TableA utilizzando un NOT EXISTS clausola. Quindi CROSS JOIN la tabella derivata da questa query con Table1 per ottenere tutte le combinazioni possibili.

Dimostrazione qui