Tabla de unión interna con respecto a un valor máximo.
Estoy tratando de escribir una consulta de MySQL donde obtengo la información de un vendedor y su producto más popular. Esto está determinado por el producto con la mayoría de las vistas de página, es decir,MAX(page_views)
.
Sin embargo, la siguiente consulta es solo un producto aleatorio y no el que tiene la mayoría de las páginas vistas.
"SELECT
seller.id, seller.language, seller.shop_name,seller.story,
seller.eng_story, product.id, product.image_thumb, product.title,
product.eng_title, product.price, MAX(product.page_views)
FROM seller
INNER JOIN product ON seller.id=product.seller_id
WHERE seller.handpicked='y' AND seller.shop_active='y'
GROUP BY seller.id
ORDER BY product.page_views
LIMIT 0,5"
O mejor dicho,page_views
De hecho, es el número correcto, pero ¿cómo obtengo el otrocampos de productos (id, imagen, título, etc.) para ser con respecto al producto con la mayoría de las páginas vistas.
DATOS DE LA MESA:
VENDEDOR:
id | language | shop_Name | story | eng_story | handpicked | active
1 | 1 | mitienda | hola mundo| Hello world | Y | Y
2 | 1 | sisenor | bonita | beautiful | N | Y
3 | 2 | new_world | mi vida | my life | Y | Y
PRODUCTOS:
id | seller_id | image_thumb | title | eng_title | price | page Views
1 | 1 | /images/.. | sombrero | hat | $5 | 10
2 | 1 | /images/.. | bufanda | scarf | $25 | 30
3 | 2 | /images/.. | arte | art | $15 | 15
4 | 3 | /images/.. | joyeria | jewlery | $10 | 1
5 | 2 | /images/.. | canasta | basket | $21 | 13
6 | 3 | /images/.. | ropa | clothes | $13 | 6
Resultado esperado (condensado):
seller.id | shop_name | product.id | pageviews | title | price
1 | miteinda | 2 | 30 | bufanda | $25
3 | newworld | 6 | 6 | ropa | $13
El resultado debe enumerar la información de los vendedores que han sido seleccionados a mano y su producto más popular por páginas vistas. Los vendedores están ordenados por páginas vistas con un límite de 5 vendedores en total.