表中显示重复记录

时间:2017-06-09 06:25:29

标签: php mysql sql database

我正在处理软件上所有工作都很完美,但是当我从多个表中打印其记录时,每行显示重复的条目

我不知道为什么会发生这件事。

这是我的查询,它使用PHP

从表中获取数据并显示
Select item_id,item_name,rci.item_shape,
remaing_quantity,rci.child_date from rads_childrenitem rci ,
add_itemchildren aic where aic.id = rci.item_id group by
rci.id,item_name,rci.item_shape, remaing_quantity order by rci.id desc

附上图片以便更好地理解。

Click to view image

3 个答案:

答案 0 :(得分:0)

这是因为您的数据库中有多个记录。 " Dhoku-Hassu的退出日期"是不同的值500和200.您的GROUP BY不会对它们进行分组,因为它是不同的值

答案 1 :(得分:0)

在查询中添加DISTINCT。

Select DISTINCT (item_id)
     , item_name
     , rci.item_shape
     , remaing_quantity
     , rci.child_date 
  from rads_childrenitem rci 
     , add_itemchildren aic 
 where aic.id = rci.item_id 
 group 
    by item_name
     ,rci.id
     , item_name
     , rci.item_shape
     , remaing_quantity 
 order 
    by rci.id desc

从这里了解更多相关信息:https://dev.mysql.com/doc/refman/5.7/en/distinct-optimization.html

答案 2 :(得分:0)

您可以使用JOIN更新SQL,而不是在FROM子句中使用多个表。也可能是错误的组(不能在不使用你的数据的情况下测试它),但无论如何,试试这个......

Select item_id,item_name,rci.item_shape,
        remaing_quantity,rci.child_date 
    from rads_childrenitem rci
    join add_itemchildren aic on aic.id = rci.item_id 
    group by item_id, item_name,rci.item_shape, remaing_quantity 
    order by rci.id desc

请注意,我已将组从rci.id更改为item_id。

字段child_date也应该在您的组中,或者类似于MAX()或MIN()。您可能还想将订单更改为item_id。