Поиск аналогичного значения в другой таблице с использованием IN (SQLite) - PullRequest
0 голосов
/ 22 ноября 2018

Я использую SQLite для работы с тоннами данных (например, 100 ГБ данных).

Мне нужно как можно быстрее найти значение одного столбца в другой таблице.Например, мне нужно найти следующие значения таблицы 1

[COD]
C62
K801 

, а затем найти их в таблице 2:

[COD_2]
C60-C63
K80-K81

Мой желаемый результат выглядит примерно так:

[COD_1]  [COD_2]
 C62      C60-C63
 K801     K80-K81

Поскольку у меня много данных, неэффективно делать что-то вроде:

SELECT * 
FROM TABLE_1, TABLE_2
WHERE COD_1 LIKE '%' || COD_2 || '%';

Вместо этого я пытался сделать это:

SELECT *
FROM TABLE_1
WHERE COD_1 IN (SELECT COD_2 FROM TABLE_2);

Конечночто это не результат, потому что коды не совсем совпадают.Есть ли способ поиска похожих значений одного столбца (что-то вроде оператора LIKE) в другой таблице с помощью IN?Или другим способом, который не пересекает TABLE_1 и TABLE_2?

Спасибо !!!полезно для меня.

1 Ответ

0 голосов
/ 24 ноября 2018

На основании показанного небольшого набора данных и моего предполагаемого ответа на вопрос @ Shawn (K801 - опечатка, и предполагается, что это K80 или K81), я предполагаю следующее описание проблемы:

Найти строку вCOD_2 так, что значение в COD_1 равно между {value1}-{value2} в COD_2;- значительный и надежный.

Я не могу говорить о скорости, но я бы подошел к этому так:

SELECT value1, value2
from COD_1,COD_2
where value1 between substr(value2,1,instr(value2,'-')-1) and substr(value2,instr(value2,'-')+1)

Мысль такова: разделить значение из ХПК-2 на «начало» и «конец»значение.

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