Проблема с вашей попыткой состоит в том, что вы начинаете с записей в TableA
, а затем LEFT JOIN
против TableB
.Это заставляет движок только отображать записи из TableA
, с дополнительными строками / столбцами из TableB
, если они совпадают, но не записи из TableB
, которые не включены в TableA
.
Либо вы хотите изменить порядок соединения:
SELECT
*
FROM
TableB b
LEFT JOIN TableA a ON
a.Field1 = b.Field1 AND
a.Field2 = b.Field2
WHERE
a.Field1 IS NULL -- records from A table shouldn't exist
Или как RIGHT JOIN
SELECT
*
FROM TableA a RIGHT JOIN
TableB b
ON a.Field1 = b.Field1 AND
a.Field2 = b.Field2
WHERE a.Field1 IS NULL -- records from A table shouldn't exist
Или FULL JOIN
, если вы хотите, чтобы записи из обоих отображались, дажеесли нет совпадений в другой таблице (без WHERE
предложения):
SELECT
*
FROM TableA a FULL JOIN
TableB b
ON a.Field1 = b.Field1 AND
a.Field2 = b.Field2