Как использовать подзапрос в USQL?

Я получаю ошибку компиляции при использовании следующего запроса в u-sql:

@CourseDataExcludingUpdatedCourse = SELECT * FROM @CourseData AS cd 
WHERE cd.CourseID NOT IN (SELECT CourseID FROM @UpdatedCourseData);

Это не позволяет мне использовать NOT IN Clause в подзапросе. Я хочу показать все те записи, которых нет в @UpdatedCourseData. Как я могу добиться этого в U-SQL?


person Jai    schedule 14.12.2016    source источник


Ответы (2)


В U-SQL NOT EXISTS реализуется как ANTISEMIJOIN, примерно так:

@CourseDataExcludingUpdatedCourse =
    SELECT cd.*
    FROM @CourseData AS cd
         ANTISEMIJOIN
             @UpdatedCourseData AS us
         ON cd.courseId == us.courseId;

Смотрите здесь для получения дополнительной информации:

https://msdn.microsoft.com/en-us/library/azure/mt621330.aspx

person wBob    schedule 14.12.2016

person    schedule
comment
Давая ответ, желательно дать некоторое объяснение, ПОЧЕМУ именно ваш ответ. - person Stephen Rauch; 16.02.2017