我有一个表格,其中数据以 sku 的形式存储。该表用于存储具有相似 sku 的 sku。例如。我有一个不同类型的戒指。所以这个表存储了生产中类似类型的环的组合。
现在,我很难区分哪个 sku 将是父母或哪个sku需要给孩子。
任何帮助都是不言而喻的。
我有一个表格,其中数据以 sku 的形式存储。该表用于存储具有相似 sku 的 sku。例如。我有一个不同类型的戒指。所以这个表存储了生产中类似类型的环的组合。
现在,我很难区分哪个 sku 将是父母或哪个sku需要给孩子。
任何帮助都是不言而喻的。
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` )
根据您所说257074
的Isparent = 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
请注意,我提供的表格并未以两种方式引用父子关系,尽管我仍然能够获得您要求的结果。希望这有帮助,祝你好运!
SELECT
m1.item as 'PARTENT',
m2.similaritem as 'CHILD'
FROM temp m1
full join temp m2 on m1.item = m2.similaritem
这将以父子关系的形式输出结果
您可以通过简单地添加一个外键来处理相同的表列,similarItem-item 来添加父子关系。