0

我有一个表格,其中数据以 sku 的形式存储。该表用于存储具有相似 sku 的 sku。例如。我有一个不同类型的戒指。所以这个表存储了生产中类似类型的环的组合。

现在,我很难区分哪个 sku 将是父母或哪个sku需要给孩子。

任何帮助都是不言而喻的。

4

3 回答 3

1
SELECT parent.Item, child.similarItem 
FROM temp parent 
FULL JOIN temp child 
ON parent.Item = child.similarItem

这将选择所有父子对。257074将作为父母和孩子返回,因此出现在两行中。如果这不是您期望的结果,请说明您的期望。

编辑:

你的桌子有点不清楚(对我来说)

Row 11: ( Item = `257074`, SimilarItem = `228725` )
Row 12: ( Item = `228725`, SimilarItem = `257074` )

根据您所说257074Isparent = 1符合9预期结果的内容?为什么不228725代替(因为它们都相互引用)?

我认为你应该从不以两种方式引用关系开始

给出的例子:

ID Parent Item
0  NULL   1
1  NULL   2
2  1      3
3  3      4
4  NULL   5
5  3      6

这是哪棵树:

  1    2    5
  |
  3
  |
+-+-+
4   6

这将导致:

SELECT Item AS SKU,
       CASE WHEN EXISTS ( SELECT ID FROM temp WHERE Parent = table.Item )
           THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END AS IsParent,
       Parent AS ParentSKU
FROM   temp table

SKU IsParent ParentSKU
----------------------
1   1        NULL
2   0        NULL
3   1        1
4   0        3
5   0        NULL
6   0        3

请注意,我提供的表格并未以两种方式引用父子关系,尽管我仍然能够获得您要求的结果。希望这有帮助,祝你好运!

于 2013-05-28T11:36:59.687 回答
0
SELECT 
    m1.item as 'PARTENT',
    m2.similaritem as 'CHILD'
FROM temp m1 
full join temp m2 on m1.item = m2.similaritem

这将以父子关系的形式输出结果

于 2013-05-28T11:37:32.490 回答
0

您可以通过简单地添加一个外键来处理相同的表列,similarItem-item 来添加父子关系。

于 2013-05-29T06:08:00.553 回答