Команда sql «NOT IN» в dplyr, используя результат из другого запроса - PullRequest
0 голосов
/ 31 мая 2019

Я использовал dplyr с dbplyr для генерации запросов для моего сервера sql и получения данных, но я не смог найти способ выполнить команду NOT IN sql.

Я пытаюсь создать что-то вроде этого

SELECT * FROM EMPLOYEE WHERE ID NOT IN id_list

где id_list получен из другого запроса в dplyr

id_list <- mutate(uid = distinct(id)) %>% select(uid) %>% collect()

id_list является объектом tbl_Microsoft SQL Server.

Что такое код dplyr для генерации SQL-запроса?

1 Ответ

1 голос
/ 31 мая 2019

Код Ронака Шаха - правильная идея, но он не отрицает должным образом. Прямо сейчас это просто отрицание идентификатора вместо отрицательных результатов сравнения.

EMPLOYEE %>% 
filter(!(ID %in% id_list)) %>%
collect()

Если вы поместите сравнение в скобки, а затем отрицаете результаты сравнения, ваш запрос будет работать нормально (я проверил его на подключении к БД, которое у меня есть).

...