我有一张这样结构的table:
id seller class ref color pricekg
1 manta apple apple-red red 0.147
2 manta pear pear-green green 0.122
3 poma apple apple-red red 0.111
4 arnie melon melon-green green 0.889
5 pinas pineapple pinneaple-brown brown 0.890
6 gordon apple apple-red red 0.135
我需要从一些卖家那里买一些水果,有一些偏好。
我的第一个目标是知道谁卖我要找的东西,在我知道之后,挑一个最好的。
当我做第一个查询时,我得到:
查询->
SELECT *
FROM `fruits`
WHERE `seller`
IN ("manta", "poma", "pinas", "gordon")
AND `class` IN ("apple", "pineapple")
ORDER BY id
结果1->
1 manta apple apple-red red 0.147
3 poma apple apple-red red 0.111
5 pinas pineapple pinneaple-brown brown 0.890
6 gordon apple apple-red red 0.135
到目前为止还不错,但我有3个卖家谁有红苹果的苹果红参考。
这是我无法解决的部分。。。
根据这个结果,我想过滤重复的apples refs(因为我想从一个卖家那里购买)。
如果有重复的,选择一个卖家manta。
如果有复制品,而且没有一个是卖螳螂的,那就选一个每公斤成本最低的。
因此,在结果1之后,第二个查询(或子查询,或者如果有一种方法可以在一个查询中完成这一切,我真的不知道最好的方法是什么)的预期结果是:
1 manta apple apple-red red 0.147
5 pinas pineapple pinneaple-brown brown 0.890
如果曼塔不卖这些,那就是:
3 poma apple apple-red red 0.111
5 pinas pineapple pinneaple-brown brown 0.890
只有一个查询可以做到这一点吗?或者我可以从结果或时态表中创建一个视图,然后再执行一个查询来过滤重复项。我怎么能这么做?
1条答案
按热度按时间slhcrj9b1#
这是一个优先级查询。
我想你想要: