我有一个像:
这样的数组$inQuery = (1, 2, 3,...)
我想从表格组合中获得具有最小价格值的文章。我的查询:
SELECT *
FROM portfolio p
WHERE p.article_id IN ($inQuery) = (
SELECT MIN(p.net_price)
FROM portfolio p);
AND p.state_id = (:state_id)
如何获得具有不同文章和最低价格的报名表组合?
答案 0 :(得分:1)
如果你有关于net_price的索引(我假设你有因为col没有索引,那么Select MIN(p.net_price)会扫描整个表,那不好),那么我认为你应该做2个查询,这可能更好使用索引:
1. $minPrice= Select MIN(net_price) from portfolio;
2. SELECT *
FROM portfolio p
WHERE p.article_id IN ($inQuery) AND net_price = $minPrice
AND p.state_id = (:state_id)
如果你有覆盖索引(net_price,state_id,article_id),那就太棒了