0

我有一个查询,其中列出了数据库中的 10 个不同项目。

在这个查询中,我有一个嵌套查询,对于上面列出的每个项目 1-10,它在另一个表中找到相关的子类别。

所以最终会发生 11 个查询。1 个遍历主要类别,另外 10 个对每个类别进行查询和输出。

问题是,它们共同输出重复的值。

由于它完成了 10 多个查询,我不能使用DISTINCT,因为即使输出在其自己的查询中是不同的,它在整个组中也不是不同的。

那么我怎样才能确保我这样的多查询列表是唯一的呢?js 或 php 是否具有可以执行此操作的内置函数?

4

2 回答 2

2

您的代码并不是真正可扩展的。您已经收到大量查询,想象一下如果您有 100 个项目...

相反,请考虑在原始查询中创建一个子查询,因为这将允许您只运行一个查询,并且 MySQL 引擎可以更轻松地完成所有关键工作(因为它知道您实际要求的是什么)。

尽可能使用JOINs,并密切关注索引。如果没有看到一些代码,我真的无法提供更多帮助,但这应该会有所帮助,因为它DISTINCT会突然再次可用。

于 2012-10-28T00:47:50.027 回答
0

实际上,我找到了一种无需修改代码即可解决它的方法。我只是使用非重置增量 $array[$i] 将所有查询的整个输出放入同一个数组中,然后使用 php 的 array_unique。:)。PHP 是一种非常通用的语言。我谦虚(菜鸟)的意见。

于 2012-10-29T03:35:16.940 回答