ISqlJoinBuilder.RightJoinRaw(string joinClause, string builderAlias) Method
.NET Standard 2.x
Uses the RIGHT OUTER JOIN
operator to join the original table source directly with a string of raw SQL to create a joined table. You need to specify an alias for the raw SQL.
Namespace: SnapObjects.Data
Assembly: SnapObjects.Data.dll
Syntax
ISqlJoinOnBuilder RightJoinRaw(string joinClause, string builderAlias);
Parameters
joinClause
System.String
A string of raw SQL following the RIGHT OUTER JOIN
operator.
builderAlias
System.String
The alias for the raw SQL.
Returns
SnapObjects.Data.ISqlJoinOnBuilder
Returns an ISqlJoinOnBuilder
object which can be used to create the condition on which the join is based.
Examples
The following code example demonstrates how to join one table with another using the RightJoinRaw method.
using SnapObjects.Data;
using System;
namespace Appeon.ApiDoc.ISqlJoinBuilderExamples
{
public class RightJoinRawExample
{
private readonly SchoolContext _context;
public RightJoinRawExample(SchoolContext dataContext)
{
// Sets data context.
_context = dataContext;
}
public void Example2()
{
var sqlQueryBuilder = new SqlQueryBuilder();
// Defines a query (named as "C"), and gets the count of courses in each department from the "Course" table.
// Gets DepartmentID values and Name values from the "Department" table, and the count of courses from query C.
// Sets the condition to join the "Department" table and the derived table: Department.DepartmentID = C.DepartmentID.
sqlQueryBuilder
.Select("Department.DepartmentID")
.Select("Department.Name")
.Select("C.CourseCount")
.From("Department")
.RightJoinRaw("(Select DepartmentID, count(1) as CourseCount From " +
"Course group by DepartmentID ) C " +
"On Department.DepartmentID = C.DepartmentID"
, "Course");
// Converts to raw SQL for the database corresponding to the data context.
string sql = sqlQueryBuilder.ToSqlString(_context);
Console.WriteLine(sql);
/*This code example produces the following output:
SELECT
[Department].[DepartmentID],
[Department].[Name],
[C].[CourseCount]
FROM [Department]
Right JOIN (SELECT
[DepartmentID],
COUNT(1) AS [CourseCount]
FROM [Course]
GROUP BY
[DepartmentID] ) [C]
ON [Department].[DepartmentID] = [C].[DepartmentID]
*/
}
}
}
Applies to
.NET Standard
2.x