【发布时间】:2014-11-05 00:12:45
【问题描述】:
我使用 T-SQL 数据库中的帐户,这些帐户的属性分布在多个表中。每个帐户都可以分配一个代码,具体取决于该帐户的属性是否与代码所需的属性匹配。我正在尝试开发一个可以采用给定帐户和给定代码的查询,确定它们是否兼容,并返回它们匹配和不匹配的值。举个例子吧。
假设我们有以下内容:
Table Person
(
UniqueID
, FirstName
, LastName
, FK_EyeColor
, FK_HairColor
, FK_Age
)
Table EyeColor
(
PK_EyeColor
, EyeColor
)
Table HairColor
(
PK_HairColor
, HairColor
)
Table Age
(
PK_Age
, Age
)
还有一个具有以下属性的人:
UniqueID = 1
FirstName = 'John'
LastName = 'Doe'
FK_EyeColor = 3 -- Brown eyes
FK_HairColor = 4 -- Black hair
PK_Age = 19 -- 19 y/o
现在,假设我有一个分配给棕色眼睛和棕色头发的人的类别代码:
Table Categories
(
PK_Categories
, CategoryName
, FK_EyeColor
, FK_HairColor
)
我想做的是指定一个人和一个类别,并确定这个人是否适合该类别。理想情况下,它会返回如下内容:
Person.UniqueID | FK_EyeColor | FK_HairColor | Qualifies for "Brown" category
1 | 3 | 4 | No
2 | 3 | 3 | Yes
比较这些表值的有效方法是什么?我很难为编码组件制定一个好的攻击计划。
【问题讨论】:
标签: sql sql-server tsql