【发布时间】:2021-01-28 16:39:00
【问题描述】:
我需要比较同一张表中两个不同 id 的数据。
例如)Id 123 可以包含项目 a、b、c
ID 234 可以有项目 x,a,b
并且 id 789 可以有项目 a,b,c。
我的 sql 应该可以根据 items 列说 Id 123 和 Id 789 相同,或者根据 item 列说 Id 123 或 id 234 不同。
我想我们可以在 oracle 中使用 self join 来做到这一点,但我不确定如何。
修正—— 项目 a、b 和 c 位于 Id 123 或 Id 789 的 3 个不同记录中。
【问题讨论】:
-
什么是项目 - 单列,其中值是一个字符串,显示以逗号分隔的项目?如果是这样,似乎这些项目没有任何特定的顺序。顺序是否重要,或者
'a,b,c'是否与'c,a,b'相同?无论如何,设计数据模型的人都应该被解雇;第一范式在第一个月的任何数据库介绍课程中教授。 -
当我说项目 a、b、c 时,我的意思是它们是相同 ID 123 的三个不同记录。它实际上不是一个字符串。希望我已经清除了它。