我在mysql中遇到了问题。我需要从具有以下数据的表中获取某些记录集。
让我向大家介绍一下这张桌子。每个主要项目都有一个类似的项目,类似的项目有一个大小。
但我们必须显示上表中尺寸最小的唯一项目。
例如..主要项目是A,它在X中对应的项目,X也是主要的,它在A中类似的项目,但X也有类似的项目P所以A,X,P都是相似的,在这些项目中最小尺寸为P,尺寸为4,因此我们从表中获取P并带有查询。
此外,记录为1-M,所有主要项目为类似项目,所有类似项目都在数据库的主要字段中退出。此表包含近3个lacs记录,用于获取和循环一次一条记录将无法正常工作..
任何帮助都将受到赞赏。
由于 Jawed Shamshedi
答案 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
问候