Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So verbinden Sie die Ergebnisse von 2 Tabellen basierend auf der Nicht-Bedingung

Sie können die folgende Abfrage verwenden:

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    

Die Idee ist, alle erforderlichen Datensätze aus TableA auszuwählen mit einem NOT EXISTS Klausel. Dann CROSS JOIN die aus dieser Abfrage abgeleitete Tabelle mit Table1 um alle möglichen Kombinationen zu erhalten.

Demo hier