sqlkata - Self Join; Добавить псевдонимы при присоединении - PullRequest
1 голос
/ 03 апреля 2020

Как правильно выполнить самостоятельное объединение, используя 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'

1 Ответ

1 голос
/ 05 апреля 2020

Нет необходимости создавать отдельный экземпляр запроса здесь, делайте это как любую другую таблицу. ключ здесь заключается в том, чтобы использовать синтаксис 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'

следующий пример непосредственно на площадке Sqlkata Пример самостоятельного подключения на площадке SqlKata

...