Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 加入mySQL查询和限制_Php_Mysql_Join_Limit - Fatal编程技术网

Php 加入mySQL查询和限制

Php 加入mySQL查询和限制,php,mysql,join,limit,Php,Mysql,Join,Limit,这是我在这个论坛上的第一篇帖子(所以请温柔一点) 我正在开发一个巨大的产品数据库,我有很多关于它们的信息表 有一个表如下所示: 产品 产品标识 名字 烙印 另一个表中有相同产品的不同类型,如下所示: 产品类型 类型识别码 类型 费用 产品标识 我使用连接来选择两个表,它工作得很好,但是由于两个表中都有一千多个条目,我想限制选择,并且在一个页面上只显示15个条目 所以我的问题来了: 我选择连接的两个表,并将其限制为15。但由于类型多于产品,我选择了15种属于未知数量产品的产品类型(因为一种

这是我在这个论坛上的第一篇帖子(所以请温柔一点)

我正在开发一个巨大的产品数据库,我有很多关于它们的信息表

有一个表如下所示:

产品

  • 产品标识
  • 名字
  • 烙印
另一个表中有相同产品的不同类型,如下所示:

产品类型

  • 类型识别码
  • 类型
  • 费用
  • 产品标识
我使用连接来选择两个表,它工作得很好,但是由于两个表中都有一千多个条目,我想限制选择,并且在一个页面上只显示15个条目

所以我的问题来了:

我选择连接的两个表,并将其限制为15。但由于类型多于产品,我选择了15种属于未知数量产品的产品类型(因为一种产品可以有1种、2种或任意数量的类型)。我需要能够在这两个表中搜索,并根据这两个表中的列对结果进行排序,并且只从产品中选择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