我正在处理软件上所有工作都很完美,但是当我从多个表中打印其记录时,每行显示重复的条目
我不知道为什么会发生这件事。
这是我的查询,它使用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
附上图片以便更好地理解。
答案 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。