Как выбрать запись из моих нескольких таблиц и ограничить количество записей от каждого продавца, используя group by
или другой метод. Я знаю, что это может быть повторяющийся вопрос, но я также пробовал много примеров, но ни один из них не работает в моем случае.
Я пытался выполнить этот запрос более 4 дней, но все еще безуспешно. Пожалуйста, кто-нибудь может помочь мне, я также включил ссылку sqlfiddle здесь http://sqlfiddle.com/#!9/7a9d62/5
Ниже приведено то, что я пытался сделать в конце концов, но все еще не работал. И я также опубликовал здесь вопрос о переполнении стека, но я не получил ответа Как ограничить количество записей с помощью группы mysql и внутреннего соединения для нескольких таблиц
SELECT p.product, p.p_id, p.p_store_key, p.p_seller_key, st.store, sl.seller,
SQRT(POW(69.1 * (st.st_lat - 2.922461), 2) + POW(69.1 * (101.639587 - st.st_lng) * COS(st.st_lat / 57.3), 2)) AS distance
FROM dbt_product AS p
INNER JOIN dbt_sellers AS sl
ON p.p_seller_key = sl.s_id
INNER JOIN dbt_stores AS st
ON st.st_id = p.p_store_key
WHERE (
SELECT COUNT(*)
dbt_product AS pl
WHERE pl.p_id = p.p_id
) <= 2
HAVING distance <= 25
ORDER BY sl.s_id DESC
Таблица продуктов
product | p_id | p_store_key | p_seller_key
----------|--------|----------------------|----------------
dog | 100 | MT66 | SE100
bird | 101 | MT67 | SE100
cow | 103 | MT66 | SE100
cat | 104 | MT66 | SE100
goat | 105 | QR89 | NK100
cow | 106 | QR89 | NK100
cat | 107 | QR89 | NK100
cat | 108 | GK59 | MB100
rat | 109 | GK15 | MB100
fish | 110 | UI100 | VX100
Таблица магазинов товаров
store | st_id | st_lng | st_lat
----------------|-----------|------------|--------------------
SellPoint | MT66 | 00.0000 | 00.0000
Sell days | MT67 | 00.0000 | 00.0000
payNGo | QR89 | 00.0000 | 00.0000
CashPoin | GK15 | 00.0000 | 00.0000
FastSell | VX100 | 00.0000 | 00.0000
Таблица продавцов
seller | s_id
----------------|-------------------
Peter | SE100
John | NK100
Hana | MB100
Alice | UI100
Ожидаемый результат
product | p_id | p_store_key | p_seller_key
---------|--------|---------------|-------------------------------
dog | 100 | MT66 | SE100
bird | 101 | MT67 | SE100
goat | 105 | QR89 | NK100
cow | 106 | QR89 | NK100
cat | 108 | GK59 | MB100
rat | 109 | GK15 | MB100
fish | 110 | UI100 | VX100
Пожалуйста, мне действительно нужна помощь в этом, я знаю, что можно архивировать, но я не знаю, как это сделать.