Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie erstellt man eine SQL-Anweisung mit IDs, die möglicherweise nicht in der Tabelle verfügbar sind?

Ein OUTER JOIN wird hier nicht funktionieren, weil Sie nicht alle Elemente aus Tabelle2 haben wollen, sondern nur die, wo ein entsprechendes Element in Tabelle 1 existiert.

Sie würden so etwas tun wollen:

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