当前位置: 首页 > 知识库问答 >
问题:

如何编写SQL查询(获取所有类别,并在每个类别上获取10个产品)

时经纬
2023-03-14

我对数据库非常陌生,我想知道原始sql查询。我有两个表Category和Product,Product表有一个foreign_key(Category_id)。

如何获得每个类别有10个产品的所有类别?所以我将在第一页显示每个类别名称和10个产品。

SELECT *
FROM categories
INNER JOIN
(SELECT * FROM products ORDER BY price LIMIT 10) as p
ON
 categories.id = p.category_id

并且还想查询该产品的评论表。如何连接两个表(类别和产品(1),评论(2)

共有1个答案

郏稳
2023-03-14

一种简单的方法是横向连接:

SELECT *
FROM categories c LEFT JOIN LATERAL
     (SELECT p.*
      FROM products p
      WHERE c.id = p.category_id
      ORDER_BY p.price
      LIMIT 10
     ) p
     ON 1 = 1
 类似资料:
  • 我使用codeigniter和有一个表3列(id,名称,parent_id)。一个类别可以有多个子类别,一个子类别可以有多个子类别。 我一直在尝试使用以下代码获取所有类别及其子类别: 但它只返回1级类别。 我的问题是如何完成我的任务:获得每个级别的所有类别和子类别。

  • 我尝试了许多方法,但我无法显示具有类别名称或id的产品

  • 问题内容: 我有这样的查询 现在,在我的查询中,我想获得每个类别的前10个产品(按销售量排名最高),并且每个类别我需要前5个子类别(按销售量排名前列) 您可以假设问题陈述是这样的: 按销售获得每个类别的前10个产品,按销售获得每个5个子产品。 这里的类别可以是书籍 产品可以是Harry Porter的书 子产品可以是HarryPorter系列5 样本输入数据格式 输出将是“ 我的查询失败,因为结果

  • 问题内容: 我有一个简单的MySQL表,其中包含类别列表,级别由parent_id确定: 我正在尝试进行面包屑跟踪。因此,我有孩子的“身份证”,我想让所有可用的父母(重复链,直到我们达到0“家”)。可能有任意数量或子行达到无限深度。 目前,我正在为每个父母使用SQL调用,这很麻烦。SQL中有一种方法可以对一个查询执行全部操作吗? 问题答案: 从这里改编: 该行是当前页面的页码。结果如下:

  • 有一个类别,具有以下(重要)属性: 我正在尝试实现类别/子类别的概念。一个类别可以有零个或多个子类别。一个类别只能有一个父类别(可以为null)。对于顶级类别,parentCategory=null。 现在,我有一个所有类别的列表,

  • 我试图通过WoodPress主题中的一个函数从WooCommerce获取产品类别 上面的代码返回一些产品,但是产品类别。 当我包括