corelibraries-devexpress-dot-dataaccess-dot-datafederation-32bdefe0.md
Defines the JOIN clause.
Namespace : DevExpress.DataAccess.DataFederation
Assembly : DevExpress.DataAccess.v25.2.dll
NuGet Package : DevExpress.DataAccess
public class JoinElement
Public Class JoinElement
The SelectNode.SubNodes property provides access to a collection of JoinElement objects.
This code snippet demonstrates how to create a query that combnes two tables from different data sources with the JOIN clause.
Note
The complete sample project How to Create a Federated Data Source at Runtime is available in the DevExpress Examples repository.
using DevExpress.DataAccess.DataFederation;
// ...
FederationDataSource federation = new FederationDataSource();
Source sourceProducts = new Source("Products", CreateSqlDataSource(), "Products");
Source sourceOrderDetail = new Source("OrderDetail", CreateExcelDataSource("SalesPerson.xlsx", "Data"));
var sourceNodeProducts = new SourceNode(sourceProducts, "Products");
var sourceNodeOrderDetail = new SourceNode(sourceOrderDetail, "OrderDetail");
var query = new SelectNode(sourceNodeProducts)
{
Alias = "ProductsOrderDetail",
SubNodes = {
new JoinElement {
Node = sourceNodeOrderDetail,
Condition = $"[{sourceNodeProducts.Alias}.ProductName] == [{sourceNodeOrderDetail.Alias}.ProductName]"
}
},
Expressions = {
new SelectColumnExpression(sourceNodeProducts, "ProductName"),
new SelectColumnExpression(sourceNodeProducts, "QuantityPerUnit"),
new SelectColumnExpression(sourceNodeOrderDetail, "OrderID"),
new SelectColumnExpression(sourceNodeOrderDetail, "OrderDate"),
new SelectColumnExpression(sourceNodeOrderDetail, "Quantity"),
new SelectColumnExpression(sourceNodeOrderDetail, "UnitPrice")
}
};
federation.Queries.Add(query);
federation.Fill();
Imports DevExpress.DataAccess.DataFederation
' ...
Dim federation As New FederationDataSource()
Dim sourceProducts As New Source("Products", CreateSqlDataSource(), "Products")
Dim sourceOrderDetail As New Source("OrderDetail", CreateExcelDataSource("SalesPerson.xlsx", "Data"))
Dim sourceNodeProducts = New SourceNode(sourceProducts, "Products")
Dim sourceNodeOrderDetail = New SourceNode(sourceOrderDetail, "OrderDetail")
Dim query = New SelectNode(sourceNodeProducts)
query.Alias = "ProductsOrderDetail"
query.SubNodes.Add(New JoinElement With {.Node = sourceNodeOrderDetail,
.Condition = $"[{sourceNodeProducts.Alias}.ProductName] == [{sourceNodeOrderDetail.Alias}.ProductName]"})
query.Expressions.Add(New SelectColumnExpression(sourceNodeProducts, "QuantityPerUnit"))
query.Expressions.Add(New SelectColumnExpression(sourceNodeOrderDetail, "OrderID"))
query.Expressions.Add(New SelectColumnExpression(sourceNodeOrderDetail, "OrderDate"))
query.Expressions.Add(New SelectColumnExpression(sourceNodeOrderDetail, "Quantity"))
query.Expressions.Add(New SelectColumnExpression(sourceNodeOrderDetail, "UnitPrice"))
federation.Queries.Add(query)
federation.Fill()
Object JoinElement
See Also