假设我们有两个具有m到n关系的数据集A,B。
A = {k1,k2,k3 .... kn} B = {g1,g2,g3 .......... gn}
两个集合中的所有元素都是字母数字。 现在,来自Set A和Set B的每个元组都存储在表T中。
代表: - (k1,g2) (k2,g4) (k1,g3) (k4,g2) ... ... .. (kn,gm)
挑战在于找出集合A中的'm'元素以最有效的方式映射到集合B中的'n'个元素。
对于前者,假设我们有以下元组,
(k1,g1) (k1,g2) (k3,g1) (k3,g2) (k5,g1) (k5,g2)
我需要的o / p是(k1,k3,k5) - > (g1,g2)。
由于映射是m到n,因此简单的选择不起作用。如果您需要进一步澄清,请告诉我
由于这些信息已经存在于数据库中,我希望我们可以通过一些SQL来实现这一点。
非常感谢。
提前致谢...
答案 0 :(得分:0)
您通常可以使用聚合和group by子句来解决此类问题。
例如,如果您的表名是T,那么:
select T.item1, concat(T.item2, ", ") from T group by T.item1
告诉你哪个item1映射到第2项。然后再次切换item1和item2,找到哪个item2映射到item1。