从mysql中的表中获取唯一记录

时间:2012-03-29 06:57:21

标签: mysql

我在mysql中遇到了问题。我需要从具有以下数据的表中获取某些记录集。

enter image description here

让我向大家介绍一下这张桌子。每个主要项目都有一个类似的项目,类似的项目有一个大小。

但我们必须显示上表中尺寸最小的唯一项目。

例如..主要项目是A,它在X中对应的项目,X也是主要的,它在A中类似的项目,但X也有类似的项目P所以A,X,P都是相似的,在这些项目中最小尺寸为P,尺寸为4,因此我们从表中获取P并带有查询。

此外,记录为1-M,所有主要项目为类似项目,所有类似项目都在数据库的主要字段中退出。此表包含近3个lacs记录,用于获取和循环一次一条记录将无法正常工作..

任何帮助都将受到赞赏。

由于 Jawed Shamshedi

1 个答案:

答案 0 :(得分:1)

鉴于架构:

CREATE TABLE similar_test ( id int(11) NOT NULL DEFAULT '0', 
Stock varchar(20) NOT NULL, SimilarStock varchar(20) NOT NULL, 
ItemSize decimal(18,2) DEFAULT '0.00' ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

请检查一下:我正在考虑1级深度:

select * , s.ItemSize as minSize from similar_test as p
 join similar_test a s on s.Stock= p.SimilarStock
 where p.Sock='A'
 order by  s.itemSize 
 limit 1

如果您在评论中没有解决问题,那么其他选项是:

一个。创建另一个表,该表将保留所需的PRE计算值

湾编写存储过程以通过项目列表达到N级别,因为未指定N.     在这种情况下(我怀疑)

℃。使用PHP /或您正在使用的任何其他语言进行排序和分组

这也可以帮助你hierarchical data
问候