我有一个看起来像这样的表...SELECT查询内侧连接字段,以获取文本值,而不是ID的
Tbl1
User OriginalValue NewValue FieldName
MikeS 11 12 Dept
BobL 140 141 Position
JohnS 11 South St 13 South St Address
JenB 9 12 AmountPaid
BillyS 133 132 Seller
下面是桌子的样子。如果用户编辑了记录,我保存了原始值和新值。现在这就是我想要做的。我需要能够显示文字而不是ID(数字)。随着外(在这个例子中)AmountPaid和地址 - 所有值都在tblDefinition看起来像这样.....
tblDefinition
ID Name Field
9 SomeValue SomeX
10 SomeValue SomeX
11 Accounting Dept
12 Finance Dept
132 Microsoft Seller
133 Apple Seller
140 Manager Position
141 Entry Position
,所以我想包括一组数据来说明什么tblDefinition样子。我试图以某种方式能够使用来自tbl1的字段和ID,并与tblDefinition一起获取文本值。我需要使用FieldName,因为可能出现在原始值和新值中的某些值(例如Fieldname = AmountPaid)在tblDefinition中具有相应的值,但实际上我需要显示值 - 在本例中为9和12 。
Select OriginalValue, Newvalue, Field
from tblDefinitions
LEFT JOIN tblDefinitions on (tbl2.OriginalValue = tblDefinitions.ID and tbl2.NewValue=tblDefinitions.ID)
这是我一直在努力,但是这是不会去任何地方 - 我真的有一个很难搞清楚,如果我能在一个查询做这样的事情,或者如果我需要做多在tblDefinitions中具有相应文本值的每个字段的联合或编辑。也许像....
Select t2.Name as OriginalValue from
tbl1 t1
inner join tblDefinitions t2 on t2.ID = t1.originalvalue
where field in ('Dept', 'Position', 'Seller')
也许只要我只有指定领域去寻找,也不会影响其他值,如量TBL 1
它不可行吗? – BobSki