Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como construir uma instrução SQL usando IDs que podem não estar disponíveis na tabela?


Um OUTER JOIN não funcionará aqui, porque você não deseja ter todos os elementos da tabela2, mas apenas aqueles em que existe um elemento correspondente na tabela 1.

Você gostaria de fazer algo assim:
SELECT tbl1.province, tbl1.district, tbl1.commune, tbl1.village 
FROM dbo.table2 AS tbl2 
INNER JOIN dbo.table1 AS tbl1
ON tbl1.province = tbl2.province_id 
AND tbl1.district = tbl2.district_id 
AND (tbl1.commune is NULL OR (tbl1.commune = tbl2.commune_id)) 
AND (tbl1.village is NULL OR (tbl1.village = tbl2.village_id))