SELECT
a.id AS a_id, a.str1 AS a_str1, a.str2 AS a_str2,
b.id AS b_id, b.str1 AS b_str1, b.str2 AS b_str2
FROM
( SELECT *
, ROW_NUMBER() OVER (PARTITION BY str1, str2 ORDER BY id) AS rn
FROM #A
) a
INNER JOIN
( SELECT *
, ROW_NUMBER() OVER (PARTITION BY str1, str2 ORDER BY id) AS rn
FROM #B
) b
ON a.str1 = b.str1
AND a.str2 = b.str2
AND a.rn = b.rn ;
Nếu bạn có nhiều hàng hơn trong một hoặc các bảng khác cho cùng một (str1, str2)
kết hợp, bạn có thể chọn những cái nào sẽ được trả lại bằng cách thay đổi INNER
tham gia vào LEFT
, RIGHT
hoặc FULL
tham gia.