Php 加入mySQL查询和限制
这是我在这个论坛上的第一篇帖子(所以请温柔一点) 我正在开发一个巨大的产品数据库,我有很多关于它们的信息表 有一个表如下所示: 产品Php 加入mySQL查询和限制,php,mysql,join,limit,Php,Mysql,Join,Limit,这是我在这个论坛上的第一篇帖子(所以请温柔一点) 我正在开发一个巨大的产品数据库,我有很多关于它们的信息表 有一个表如下所示: 产品 产品标识 名字 烙印 另一个表中有相同产品的不同类型,如下所示: 产品类型 类型识别码 类型 费用 产品标识 我使用连接来选择两个表,它工作得很好,但是由于两个表中都有一千多个条目,我想限制选择,并且在一个页面上只显示15个条目 所以我的问题来了: 我选择连接的两个表,并将其限制为15。但由于类型多于产品,我选择了15种属于未知数量产品的产品类型(因为一种
- 产品标识
- 名字
- 烙印
- 类型识别码
- 类型
- 费用
- 产品标识
(我希望我的描述可以理解)实现这一点有很多方法。在我看来,主要的困难在于需要对两个表中的列进行排序。因此,考虑到与类型的关系,前15个不同的产品将以可变的行数出现。最简单的方法可能是使用 但是,这会给您提供有关类型的有限数据,并且可能会给您的订单带来问题,因为这发生在分组之后 你可能想做这样的事情
SELECT
*
FROM
( SELECT
DISTINCT p.*
FROM
products p INNER JOIN types t ON p.product_id=t.product_id
WHERE
[your WHERE clauses]
ORDER BY
[columns]
LIMIT 15 ) pl
INNER JOIN types tl ON pl.product_id=tl.product_id
这应该做的是,当连接到类型表并按您的条件排序时,从products表中获取前15个不同的行,然后获取这些产品的所有类型。欢迎使用StackOverflow!请张贴与问题相关的代码。这将帮助我们帮助你。你能发布一些示例表数据和预期输出吗
SELECT
*
FROM
( SELECT
DISTINCT p.*
FROM
products p INNER JOIN types t ON p.product_id=t.product_id
WHERE
[your WHERE clauses]
ORDER BY
[columns]
LIMIT 15 ) pl
INNER JOIN types tl ON pl.product_id=tl.product_id