我有一个表有两个字段(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