Я пытаюсь что-то выяснить с помощью проблемы JOIN, где мне нужно использовать оператор или в соединении.
У меня есть 2 таблицы.В таблице 1 содержится около 1000 записей, а в таблице 2 - миллионы.
В таблице 1 есть 2 поля (заявка1, заявка2), и если любое из этих полей совпадает с полем таблицы 2.claim, то мне нужны значения table2.field1 и table2.field2, вставленные во временную таблицу.
Итак, допустим, у меня есть эти две таблицы
table 1 claim1 claim2 table 2 claim field1 field2
1001 2001 1001 a1 a2
1002 2002 1002 b1 b2
1003 2003 1003 c1 c2
2001 d1 d2
2002 e1 e2
Я пытаюсь получить значения из таблицы 2 для записей в таблице 1 как для полей утверждений 1, так и для полей утверждений 2.
Итак, я написал это
SELECT CLAIM, FIELD1, FIELD2
FROM TABLE1 T1
JOIN TABLE2 T2 ON T2.CLAIM = T1.CLAIM1
OR T2.CLAIM = T1.CLAIM2
Если я просто запустил это, он запустится в считанные секунды, и я верну записи.
SELECT CLAIM, FIELD1, FIELD2
FROM TABLE1 T1
JOIN TABLE2 T2 ON T2.CLAIM = T1.CLAIM1
после добавления оператора or я завершил запрос примерно через 15 минут.
SELECT CLAIM, FIELD1, FIELD2
FROM TABLE1 T1
JOIN TABLE2 T2 ON T2.CLAIM = T1.CLAIM1
OR T2.CLAIM = T1.CLAIM2
Любая помощь будет принята с благодарностью.У меня просто чертовски много времени, обволакивающее мой мозг вокруг этого