sqlkata - 自连接;加入时添加别名
sqlkata - Self Join; Add aliases while joining
使用 SQL KATA 进行自连接的正确方法是什么?目前,我只能做以下事情
var query1 = new Query("Users");
var query = new Query("Users")
.Join(query1.As("a"), j => j.On("a.Name", "Users.ParentName"))
.Where("Name", "Sami");
但这会生成以下查询
SELECT
*
FROM
[Users]
INNER JOIN (
SELECT
*
FROM
[Users]
) AS [a] ON ([a].[Name] = [Users].[ParentName])
WHERE
[Name] = 'Sami'
是否可以实现如下查询?
SELECT
*
FROM
[Users] [a]
INNER JOIN [Users] [b] ON ([a].[ParentName] = [b].[Name])
WHERE
[a].[Name] = 'Sami'
无需在此处创建单独的查询实例,与其他查询实例一样 table。
这里的关键是使用 table as alias
语法来指示 SqlKata 您正在使用不同的别名。
var query = new Query("Users as a")
.Join("Users as b", "a.ParentName", "b.Name")
.Where("a.Name", "sami");
这将生成以下 SQL:
SELECT
*
FROM
[Users] AS [a]
INNER JOIN [Users] AS [b] ON [a].[ParentName] = [b].[Name]
WHERE
[a].[Name] = 'sami'
直接在Sqkata playground上查看以下示例
Self Join Example on SqlKata Playground
使用 SQL KATA 进行自连接的正确方法是什么?目前,我只能做以下事情
var query1 = new Query("Users");
var query = new Query("Users")
.Join(query1.As("a"), j => j.On("a.Name", "Users.ParentName"))
.Where("Name", "Sami");
但这会生成以下查询
SELECT
*
FROM
[Users]
INNER JOIN (
SELECT
*
FROM
[Users]
) AS [a] ON ([a].[Name] = [Users].[ParentName])
WHERE
[Name] = 'Sami'
是否可以实现如下查询?
SELECT
*
FROM
[Users] [a]
INNER JOIN [Users] [b] ON ([a].[ParentName] = [b].[Name])
WHERE
[a].[Name] = 'Sami'
无需在此处创建单独的查询实例,与其他查询实例一样 table。
这里的关键是使用 table as alias
语法来指示 SqlKata 您正在使用不同的别名。
var query = new Query("Users as a")
.Join("Users as b", "a.ParentName", "b.Name")
.Where("a.Name", "sami");
这将生成以下 SQL:
SELECT
*
FROM
[Users] AS [a]
INNER JOIN [Users] AS [b] ON [a].[ParentName] = [b].[Name]
WHERE
[a].[Name] = 'sami'
直接在Sqkata playground上查看以下示例 Self Join Example on SqlKata Playground