【发布时间】:2010-11-12 16:37:47
【问题描述】:
我正在尝试解决以下问题。
我觉得这是可能的,但我似乎无法得到它。
这是场景:
Table 1 (Assets)
1 Asset-A
2 Asset-B
3 Asset-C
4 Asset-D
Table 2 (Attributes)
1 Asset-A Red
2 Asset-A Hard
3 Asset-B Red
4 Asset-B Hard
5 Asset-B Heavy
6 Asset-C Blue
7 Asset-C Hard
如果我正在寻找与 Asset-A 具有相同属性的东西,那么它应该识别 Asset-B,因为 Asset-B 具有与 Asset-A 相同的属性(它应该丢弃重,因为 Asset-A 没有' t 指定任何不同或类似的内容)。另外,如果我只想要常见的资产 A 和资产 B 的属性,我将如何获得呢?
看起来很简单,但我看不懂……
我使用的实际表几乎就是 Table2,只是 AssetId 和 AttributeId 的关联,所以:
PK:身份证
整数:资产 ID
int: AttributeId
我只包含资产表的想法是为了简化问题。
【问题讨论】:
-
为什么是-1?完全有效的 SQL 问题。 +1
-
任何看起来像“我不知道连接是如何工作的”的问题都是非常自私的,并且在原始海报之外没有任何用途。
-
@Mark:这个问题远远超出了“连接如何工作”。
-
我把-1去掉了,但是帖子的标题绝对应该改写。类似于...如何在 SQL 中找到具有相似关系的行?
-
@Mark LOL...是的,我希望我知道 joins 是如何工作的...虽然它绝对是自助服务,但这个问题适用于很多地方...
标签: sql tsql common-table-expression