Tôi đang mong đợi một mã ArcObjects tương đương với SQL bên trái tham gia.
Ví dụ: Tôi có dưới mã SQL, nó đơn giản tham gia để lấy các bản ghi từ cả hai bảng dựa trên ChecklistId
giá trị.
SELECT T1.ChecklistId, T1.ChecklistName,
T2.Latitude, T2.Longitude
FROM [dbo].[TableOne] T1
INNER JOIN [dbo].[TableTwo] T2 ON T2.ChecklistId = T1.ChecklistId
WHERE T1.ChecklistId = @ChecklistId
Tôi đã chuyển đổi truy vấn SQL ở trên thành ArcObjects.
IQueryDef queryDef = featureWorkspace.CreateQueryDef();
queryDef.Tables = "TableOne, TableTwo";
queryDef.SubFields = "TableOne.ChecklistId, TableOne.ChecklistName, TableTwo.Latitude, TableTwo.Longitude";
queryDef.WhereClause = "TableOne.ChecklistId = '" + checklistId + "' AND TableOne.ChecklistId = TableTwo.ChecklistId";
ICursor cursor = queryDef.Evaluate();
IRow row = null;
while ((row = cursor.NextRow()) != null)
{
// ... get and set the values to the objects
}
Tôi muốn lấy các bản ghi ngay cả T1.ChecklistOwner
cột có null
giá trị. Nói một cách đơn giản, chúng ta có thể nói như SQL LEFT JOIN
như sau:
SELECT T1.ChecklistId, T1.ChecklistName,
T2.Latitude, T2.Longitude,
T3.FullName
FROM [dbo].[TableOne] T1
INNER JOIN [dbo].[TableTwo] T2 ON T2.ChecklistId = T1.ChecklistId
LEFT JOIN [dbo].[TableThree] T3 ON T3.UserAlias = T1.ChecklistOwner
WHERE T1.ChecklistId = @ChecklistId
Làm cách nào tôi có thể chuyển đổi truy vấn SQL trên thành ArcObjects?