当前位置: 首页 > 面试题库 >

内连接表的最大值

郤飞英
2023-03-14
问题内容

我正在尝试编写一个MySQL查询,在其中提取卖方的信息和她最受欢迎的产品。这取决于浏览量最多的产品,即MAX(page_views)

不过,以下查询只是拉出一种随机产品,而不是浏览量最多的产品。

"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"

或更准确地说,page_views实际上是正确的数字,但是如何获得其他 产品字段 (id,图像,标题等)相对于具有最多页面浏览量的产品。

数据

卖方:

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

产品:

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

预期结果(精简):

seller.id | shop_name | product.id | pageviews | title    | price
  1       |  miteinda |     2      |    30     |  bufanda | $25
  3       |  newworld |     6      |     6     |  ropa    | $13

结果应按浏览量列出经过精心挑选的卖家信息及其最受欢迎的产品。按浏览量对卖家进行排序,总共限制为5个卖家。


问题答案:
SELECT  a.ID SellerID,
        a.Shop_Name,
        b.ID ProductID,
        b.pageViews,
        b.title,
        b.Price
FROM    seller a
        INNER JOIN Products b
            ON a.id = b.seller_ID
        INNER JOIN
        (
            SELECT  seller_ID, MAX(pageViews) max_view
            FROM    products
            GROUP   BY seller_ID
        ) c ON  b.seller_ID = c.seller_ID AND
                b.pageViews = c.max_View
WHERE   a.handpicked = 'Y' AND a.active = 'Y'
  • SQLFiddle演示

输出

鈺斺晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暒鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暒鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暒鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暒鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暒鈺愨晲鈺愨晲鈺愨晲鈺愨晽
鈺� SELLERID 鈺� SHOP_NAME 鈺� PRODUCTID 鈺� PAGEVIEWS 鈺�  TITLE  鈺� PRICE 鈺�
鈺犫晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暚鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暚鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暚鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暚鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暚鈺愨晲鈺愨晲鈺愨晲鈺愨暎
鈺�        1 鈺� mitienda  鈺�         2 鈺�        30 鈺� bufanda 鈺� $25   鈺�
鈺�        3 鈺� new_world 鈺�         6 鈺�         6 鈺� ropa    鈺� $13   鈺�
鈺氣晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暕鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暕鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暕鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暕鈺愨晲鈺愨晲鈺愨晲鈺愨晲鈺愨暕鈺愨晲鈺愨晲鈺愨晲鈺愨暆


 类似资料:
  • 问题内容: 我在其他帖子上也看到了类似问题的解决方案,但是在将其应用于我的特定问题时遇到了问题。 这是我最初的加入: 结果是: 但是对于每个service_note_task,我实际上只需要一行代表具有最高comment_id的注释,如下所示: 我认为我可以在子选择语句中使用MAX来缩小结果的范围。如何将其合并到语句中以获得这些结果? 问题答案: 作为参考,这被称为“ groupwise-maxi

  • 问题内容: JPA /hibernate查询中允许的联接数是否有限制? 由于Hibernate 不会自动加入,因此我必须在JPA / Hibernate查询中明确指定加入。例如,一个人有一个地址,一个地址有一个状态。以下查询检索地址和状态已满的人员: 随着我不断添加联接,最终(在左联接12-13之后)达到了Hibernate生成无效SQL的限制: 我确实将Hibernate的方言设置为数据库实现M

  • 嘿,我正在使用Glassfish开源v4,我遇到了一个奇怪的问题。 我在管理控制台中定义了到Oracle 11g的JDBC连接池,并设置了: 初始和最小池大小:500 最大游泳池大小:1000 池大小调整数量::750 我已经为这个连接池创建了一个特定的用户。然而,有时当我检查数据库中打开的连接时,我发现有1000多个连接(我看到的最大连接数是1440个) 当发生这种情况时,任何查询尝试都会失败,

  • 在OkHttp中,我找不到设置硬最大连接池大小的方法。从留档https://square.github.io/okhttp/3.x/okhttp/okhttp3/ConnectionPool.html很明显,您可以设置最大空闲连接,但不能设置整体最大值。这意味着在高负载下,它可以增长超过任何限制。 有没有办法最大化池?如果没有,为什么没有?

  • 我正在使用hikari cp和spring boot应用程序,它有超过1000个并发用户。我已经设置了最大池大小- 当我使用 它显示的最大值为300,等于池大小。它永远不会增加超过最大池。这是故意的吗?我认为池大小意味着保持连接,以便在将来需要数据库请求时可以重用连接,但在需要时可以进行更多连接。 另外,当我删除max pool配置时,我会立即得到- HikariPool-0-连接不可用,请求在3

  • 当使用P2P_STAR时,由于此拓扑使用Wi-Fi热点,设备的最大数量为10个。也就是说,如果您没有路由器。 这让我不禁要问两个问题: 我知道附近的连接使用BLE、蓝牙和Wi-Fi直接连接。我知道蓝牙有一个最大的理论数量~7个设备,这是3-4个真正的连接。我知道Wi-Fi热点最多有10个连接。我知道BLE最多可以容纳20个理论连接(虽然不知道真正连接的数量)。如果BLE(理论上)可以拥有20个连接