我有一个Postgres(9.1)客户类似数据库:试图优化PostgreSQL的嵌套其中
customers.id
customers.lastname
customers.firstname
invoices.id
invoices.customerid
invoices.total
invoicelines.id
invoicelines.invoiceid
invoicelines.itemcode
invoicelines.price
我建列出谁购买某一个项目的所有客户搜索(说“ABC”)。
Select * from customers WHERE customers.id IN
(Select invoices.customerid FROM invoices WHERE invoices.id IN
(Select invoicelines.invoiceid FROM invoicelines WHERE
invoicelines.itemcode = 'abc')
)
搜索能正常工作,并提出了正确的客户,但需要大约10秒左右2张万元的发票和200万个项目的数据库上。
我想知道是否有另一种方法可以减少一点。
您是否尝试过连接? '从客户的内部联合发票*中选择* customeromerid = customers.id内部联接inoicelines.invoiceid = invoices.invoiceid其中invoicelines.itemcode ='abc'' – artm
阅读:http://stackoverflow.com/tags/postgresql-performance/info然后[**编辑您的问题**](http://stackoverflow.com/posts/35700292/edit)并添加缺少的信息 –