从其他 sql 表中查找值
Posted
技术标签:
【中文标题】从其他 sql 表中查找值【英文标题】:Lookup value from other sql table 【发布时间】:2015-03-31 11:13:11 【问题描述】:我有如下sql语句:
select A.transactionNumber,
A.DealNumber
A.Group
from TableOne A
inner join TableTwo B
on A.transactionNumber = B.tranNumber
where B.ID = 111111
这会产生类似的东西
transactionnumber | DealNumber | Group
123 | 1 | 100
456 | 2 | 101
但是,还有另一个表 tableThree 将“组”转换为字符串。它看起来像这样:
Group | GroupLookup
100 | Lookup1
101 | Lookup2
102 | Lookup3
总之,我希望我的选择返回这个:
transactionnumber | DealNumber | Group
123 | 1 | Lookup1
456 | 2 | Lookup2
我完全确定这很简单,但是我是一个完整的新手,并且选择中的第一个加入的存在让我很困惑,我非常感谢任何帮助。
【问题讨论】:
【参考方案1】:如果我理解正确的话应该是这样的:
select A.transactionNumber,
A.DealNumber,
C.GroupLookup AS [Group]
from TableOne A
inner join TableTwo B
on A.transactionNumber = B.tranNumber
inner join TableThree C
on C.Group = A.Group
where B.ID = 111111
【讨论】:
感谢您的回答。您添加了第二个内部联接,但 tableTwo (B) 中没有 Group 字段。组在 tableThree 中,如果我将行 c.Group = B.Group 更改为 C.Group = A.Group 则返回的行数比我尝试查找组之前的查询多得多。 所以你需要加入TableThree
Group
TableOne
Group
。当您选择A.Group
并返回组号时,TableThree
中的列Group
也包含相同的组号,因此您需要加入它们,TableThree
中包含组名称的其他列是GroupLookup
所以你需要使用它选择子句。现在检查答案。
非常感谢 - 行数增加是由于表的内容,与查询无关。再次感谢 - 真的很有帮助以上是关于从其他 sql 表中查找值的主要内容,如果未能解决你的问题,请参考以下文章