Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment créer une instruction SQL en utilisant des ID qui pourraient ne pas être disponibles dans la table ?

Une OUTER JOIN ne fonctionnera pas ici, car vous ne voulez pas avoir tous les éléments de la table2, mais uniquement ceux où un élément correspondant existe dans la table 1.

Vous voudriez faire quelque chose comme ceci :

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))