Вы можете использовать TableB
в FROM
, затем TableA
в LEFT JOIN
и в вашем предложении ON
добавить совпадение Value
, чтобы достичь ожидаемого результата:
SELECT B.ID,
A.Value AS Value1,
B.Value AS Value2
FROM TableB B
LEFT JOIN TableA A ON A.ID = B.ID AND A.Value = B.Value;
Демо с примерами данных:
DECLARE @TableA TABLE (ID INT, [Value] VARCHAR (1));
INSERT INTO @TableA (ID, [Value]) VALUES
(1, 'A'), (1, 'B'), (2, 'A');
DECLARE @TableB TABLE (ID INT, [Value] VARCHAR (1));
INSERT INTO @TableB (ID, [Value]) VALUES
(1, 'A'), (1, 'B'), (1, 'C');
SELECT B.ID,
A.[Value] AS Value1,
B.[Value] AS Value2
FROM @TableB B
LEFT JOIN @TableA A ON A.ID = B.ID AND A.[Value] = B.[Value];
Вывод:
ID Value1 Value2
----------------------
1 A A
1 B B
1 NULL C