如何防止多个嵌套sql查询中的重复输出?

时间:2012-10-28 00:44:24

标签: php javascript mysql

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

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

最终,发生了11次查询。 1遍历主要类别,另外10个查询和输出每个类别。

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

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

那么我怎样才能确保我这样的多查询列表是唯一的? js或php有内置函数可以做到吗?

2 个答案:

答案 0 :(得分:2)

您的代码实际上无法扩展。您已经达到了大量的查询,想象一下,如果您有100个项目......

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

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

答案 1 :(得分:0)

实际上,我找到了一种解决方法,而无需重新编写代码。我只是使用非重置增量$ array [$ i]将所有查询的整个输出放入同一个数组中,然后使用php的array_unique。 :)。 PHP是一种多才多艺的语言。我的谦逊(noob)意见。