CROSS APPLY для таблиц JOIN, которые не связаны - PullRequest
1 голос
/ 10 марта 2020

Я заметил, что CROSS APPLY обычно используется для функций, но я использовал его следующим образом:

SELECT pu.UserID UserID,  A.AlertID 
FROM tbl_Users pu
CROSS APPLY 
(Select AlertID from tbl_Alerts) A

По существу для каждого пользователя, я хотел, чтобы он показывал 2 предупреждения, которые находятся в таблица tbl_Alerts.

Как таковая, она показала бы что-то вроде:

    UserID    AlertID
    1         1 
    1         2
    2         1
    2         2
    3         1
    3         2

Интересно, является ли это допустимым использованием CROSS APPLY в этом случае.

1 Ответ

4 голосов
/ 10 марта 2020

Во-первых, будет возвращен только один идентификатор пользователя.

Это законно? Я думаю, что это намного проще:

SELECT pu.UserID UserID,  A.AlertID 
FROM tbl_Users pu 
     CROSS JOIN tbl_Alerts A
WHERE pu.Userid = @UserID;

Но ваш код правильный SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...