->and_where_open()
->and_where('orders.status', '=', 'delivered')->or_where('orders.status', '=', 'new')
->and_where_close()
这就是我得到的:
SELECT deals.*, SUM(orders.total_count) AS revenue, SUM(orders.quantity) AS qty
FROM deals
LEFT JOIN users ON (users.id = deals.partner_id)
LEFT JOIN orders ON (orders.deal_id = deals.id)
WHERE (orders.status = 'delivered' OR orders.status = 'new')
AND (title LIKE '%cake%'
OR title LIKE '%cake%'
OR description LIKE '%cake%'
)
AND deals.seller_id = 123
GROUP BY deals.ID
ORDER BY ID DESC
LIMIT 10
如果有任何订单并且它们的状态为已交付或新的,则此方法效果很好。
我希望此查询显示所有交易,也包括那些没有订单的交易。
所以:如果这个 deal_id 存在订单,那么它应该执行 SUM() 并检查 orders.status 是已交付还是新的,否则它应该现在并且仍然获取交易。相反,这个查询排除了交易行,我反而想抓住它。
如何才能做到这一点?