Я использую SQL изнутри R с RSQLite, DBI и dbplyr. Я хочу объединить несколько очень больших таблиц, и объединения всегда имеют уникальный идентификатор (идентификатор уникален в каждой таблице, это правильная реляционная база данных). Есть ли способ прекратить присоединение SQL после того, как будет найдено соответствие для каждого наблюдения?
Позвольте мне привести простой пример. Я начинаю с table_1, который является небольшим подмножеством гораздо большей таблицы:
unique_id value_1
1 50
2 100
3 100
Я хочу объединить эту таблицу с гораздо большей таблицей_2:
unique_id value_2
1 500
2 10
3 102
4 500
5 10
6 102
7 500
8 10
9 102
... ...
который я делаю через:
library(RSQLite)
library(DBI)
library(dbplyr)
# some connection statements to my database
new_tab <- left_join(table_1, table_2, by = 'unique_id')
Эта операция занимает много времени, потому что она ищет во всей таблице 2 потенциальные совпадения, а таблица 2 огромна. Однако, поскольку идентификаторы уникальны, я знаю, что, когда у меня есть совпадение для каждого из моих наблюдений в таблице 1, я готов. Не нужно продолжать изучать таблицу 2. Есть ли способ, с помощью которого я могу сказать SQL прекратить объединение на этом этапе?