Можно ли как-нибудь объединить две таблицы на основе нескольких столбцов в SQL Server?
У меня есть две таблицы.
Таблица 1:
id | Code | column 2| column 3| column 4 |
---+----------+---------+---------+----------+
1 | ABC | 6 | 6 | 9 |
2 | XYZ | 7 | 7 | 10 |
2 | MNO | 6 | 6 | 10 |
3 | XYZ | 6 | 7 | 10 |
3 | PQR | 5 | 6 | 3 |
4 | ABC | 9 | 8 | 8 |
5 | MNO | 1 | 2 | 6 |
Таблица 2:
id | column 1 | Result
---+----------+--------------
1 | ABC | Pass
2 | XYZ | Pass
2 | MNO | Fail
3 | PQR | Fail
5 | MNO | Pass
Теперь я хочу объединить две таблицы со ссылкой на два столбца на основе ID
и CODE
. Я хочу, чтобы все строки из таблицы 1 и поместили результат только в соответствующую строку таблицы 1.
Мой конечный результат должен быть таким:
id | Code | column 2| column 3| column 4 | Result
---+----------+---------+---------+----------+--------
1 | ABC | 6 | 6 | 9 | Pass
2 | XYZ | 7 | 7 | 10 | Pass
2 | MNO | 6 | 6 | 10 | Fail
3 | XYZ | 6 | 7 | 10 |
3 | PQR | 5 | 6 | 3 | Pass
4 | ABC | 9 | 8 | 8 |
5 | MNO | 1 | 2 | 6 | Pass
Запрос, который я использовал до сих пор:
select
tb1.*, tb2.result
from
table1 tb1
left join
table2 tb2 on tb1.id = tb2.id and tb1.code = tb2.column1
Является ли этот запрос корректным, поскольку я получаю повторяющиеся строки в таблице 1?