【问题标题】:the query returns duplicate results查询返回重复的结果
【发布时间】:2013-07-10 14:15:25
【问题描述】:

我正在尝试编写一个脚本来显示互联网商店中特定产品的其他产品。根据价格和类别显示的产品。例如,如果您选择了主板脚本,则会向它显示其他产品硬盘冷却器等。价格范围必须由管理员指定。问题是代码返回重复的产品。我曾尝试使用 group by,在 MySQL 查询中不同。我也尝试在 PHP 中使用数组唯一函数。两者都没有工作。这个问题有什么可能的解决方案?现在代码如下所示。

if(isset($product_info['related_kv4nt_id_2'])) {
    $i=1;
                        $imax = 5;
                        while ($i < $imax) {
$product_sql_test2 = $this->db->query("SELECT p.product_id, p.price,    pc.product_id AS product_id
FROM oc_product p
INNER JOIN oc_product_to_category pc ON p.product_id = pc.product_id
WHERE p.price  BETWEEN '".$product_info['related_kv4nt_min_2']."' and '".$product_info['related_kv4nt_max_2']."'
AND pc.category_id =  '".$product_info['related_kv4nt_id_2']."'
GROUP BY pc.product_id
ORDER BY RAND( ) 
LIMIT 0 , 10");                        if(isset($product_sql_test2->row['product_id'])){$this->data['product_spec_2_'.$i.''] = $product_sql_test2->row['product_id'];}
$i++;
}
} 

【问题讨论】:

  • 你是如何获取行的?

标签: php mysql duplicates opencart


【解决方案1】:

试试

GROUP BY product_id

或喜欢

GROUP BY p.product_id

pc.product_id AS product_id 

把这个改成

pc.product_id AS p_id 

并尝试分组

GROUP BY p_id

【讨论】:

  • 当我尝试按产品 ID 进行分组时,我收到以下错误:注意:错误:如果我尝试按产品 p.product_id 进行分组,则组语句中的列 'product_id' 不明确,我得到重复的数据。
  • pc.product_id AS product_id 将此更改为 pc.product_id AS p_id 并尝试像 GROUP BY p_id 进行分组
  • 仍然得到重复数据。
猜你喜欢
  • 2011-01-19
  • 2015-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 1970-01-01
  • 1970-01-01
  • 2018-06-16
相关资源
最近更新 更多