Py学习  »  DATABASE

是否将子查询转换为MySQL的JOIN语句?

ShadowAccount • 5 年前 • 1331 次点击  

以下是我当前的查询:

 SELECT prod.id,
       prod.title,
       prod.price,
       prod.status,
       (SELECT COUNT(*)
        FROM   payments
        WHERE  product = prod.id
               AND ( vendor = '1'
                     AND credited = 'Vendor' )
               AND ( status = 'Completed'
                      OR status = 'Pending'
                      OR status = 'Canceled_Reversal' )) AS sales,
       (SELECT SUM(price)
        FROM   payments
        WHERE  product = prod.id
               AND ( vendor = '1'
                     AND credited = 'Vendor' )
               AND ( status = 'Completed'
                      OR status = 'Pending'
                      OR status = 'Canceled_Reversal' )) AS revenue
FROM   products prod
WHERE  member = '1'
       AND status != 'Deleted' 
       AND status != 'Blocked'  

现在我在主查询中使用两个子查询。

有没有什么方法可以使用JOIN语句来代替或简化查询以加快查询速度?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56388
 
1331 次点击  
文章 [ 2 ]  |  最新文章 5 年前