我有一個表有兩個字段(custno和custno2),需要從查詢中進行搜索。我沒有設計這張桌子,所以不要尖叫我。 :-) 我需要找到所有記錄,其中custno或custno2與基於titleno的同一個表上的查詢返回的值相匹配。需要幫助調整SQL語句
換言之,用戶在1234中鍵入titleno。我的查詢搜索該表以查找與titleno關聯的custno。它也爲該titleno尋找custno2。然後,它需要在同一張表上搜索所有其他記錄,這些記錄在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秒鐘返回數據。它可以被重寫爲更快的工作嗎?
對於什麼數據庫(版本以及)? – 2010-03-31 16:34:16
該表可以同時填寫custno和custno2嗎? – 2010-03-31 16:39:11