У меня есть таблица с такой структурой:
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 продавца, у которых красное яблоко с яблочно-красным реф.
Теперь эту часть я не могу решить...
С этим результатом я хотел бы отфильтровать дубликаты ссылок на яблоки (так как я хочу купить у одного продавца).
Если есть дубликаты, выберите тот с манта продавца.
Если есть дубликаты, и ни один из них не является продавцом манты, выберите тот, который имеет наименьшую стоимость за килограмм.
Итак, после результата 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
Возможно ли это сделать только одним запросом?Или я могу как-то сделать представление из таблицы результатов или временной таблицы, а затем выполнить еще один запрос для фильтрации дубликатов.Как я мог это сделать?