У меня есть таблица с двумя полями (custno и custno2), которые нужно искать в запросе. Я не создавал этот стол, так что не кричи на меня. :-)
Мне нужно найти все записи, где либо custno, либо custno2 совпадают со значением, возвращаемым запросом в той же таблице на основе titleno.
Другими словами, пользователь вводит 1234 для заголовка. Мой запрос ищет в таблице, чтобы найти custno, связанный с titleno. Он также ищет custno2 для этого titleno. Затем он должен выполнить поиск в той же таблице для всех других записей, которые имеют custno или custno2, возвращенные в предыдущем поиске в полях custno или custno2 для этих других записей.
Вот что я придумал:
SELECT BILLYR, BILLNO, TITLENO, VINID, TAXPAID, DUEDATE, DATEPIF, PROPDESC
FROM TRCDBA.BILLSPAID
WHERE CUSTNO IN
(select custno from trcdba.billspaid where titleno = '1234'
union select custno2 from trcdba.billspaid where titleno = '1234' and custno2 != '')
OR CUSTNO2 IN
(select custno from trcdba.billspaid where titleno = '1234'
union select custno2 from trcdba.billspaid where titleno = '1234' and custno2 != '')
Запрос занимает около 5-10 секунд, чтобы вернуть данные. Можно ли его переписать, чтобы он работал быстрее?