我在我的项目中使用 SqlKata,有必要在嵌套连接的帮助下连接多个表。我希望看到类似的东西:
SELECT * FROM t1
LEFT JOIN (t2 LEFT JOIN t3 ON t3.id = t2.id)
ON t2.id = t1.id
在 Join/LeftJoin/RigthJoin 方法中,我没有发现任何可以接受除联接或其他请求之外的任何内容的重载。
不想手动建立这样的连接,也许有人已经面临这样的问题?那太好了,我真的很感激一个提示。
我在我的项目中使用 SqlKata,有必要在嵌套连接的帮助下连接多个表。我希望看到类似的东西:
SELECT * FROM t1
LEFT JOIN (t2 LEFT JOIN t3 ON t3.id = t2.id)
ON t2.id = t1.id
在 Join/LeftJoin/RigthJoin 方法中,我没有发现任何可以接受除联接或其他请求之外的任何内容的重载。
不想手动建立这样的连接,也许有人已经面临这样的问题?那太好了,我真的很感激一个提示。
目前在 SqlKata 中无法定义 JOIN 优先级。
但是您可以通过使用子查询来获得相同的结果。
var query = new Query("t1")
.LeftJoin(
new Query("t2").LeftJoin("t3", "t3.id", "t2.id").As("tmp"),
j => j.On( "tmp.id", "t1.id")
);
此查询将产生以下 sql:
SELECT * FROM [t1] LEFT JOIN (
SELECT * FROM [t2] LEFT JOIN [t3] ON [t3].[id] = [t2].[id]
) AS [tmp] ON ([tmp].[id] = [t1].[id])