Используя Microsoft SQL Server 2008, скажем, есть таблица1, в которой хранятся выбранные идентификаторы провинций, районов, коммун и деревень.И затем есть таблица2 с идентификаторами и названиями провинций, районов, коммун и деревень.Провинции и районы являются обязательными полями и всегда будут заполнены.Коммуны и деревни могут быть заполнены, но могут даже не заполняться, поскольку они не обязательны.
Каков наилучший способ построения динамического оператора SQL, не зная, заполнены ли идентификаторы для коммун и деревень в таблице1 или нет.
SELECT tbl1.province, tbl1.district, tbl1.commune, tbl1.village
FROM dbo.table1 AS tbl1
AND dbo.table2 AS tbl2
WHERE tbl1.province = tbl2.province_id
AND tbl1.district = tbl2.district_id
AND tbl1.commune = tbl2.commune_id
AND tbl1.village = tbl2.village_id
Этот оператор дает неверные результаты, если идентификатор в таблице1 не заполнен.